Hinweis: Diese Frage unterscheidet sich vonhttps://tex.stackexchange.com/a/95188/18588weil diese Frage mit der column
Umgebung zusammenhängt, diese hier sich aber auf den \column
Befehl bezieht.
Mein Code:
\documentclass{beamer}
\begin{document}
\begin{frame}
\frametitle{Lorem Ipsum}
\begin{columns}[t]
\column{.5\textwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat.
\column{.5\textwidth}
Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit
anim id est laborum.
\end{columns}
\end{frame}
\end{document}
Dadurch wird eine Folie mit zwei Spalten erstellt. Ich möchte nun eine Trennlinie zwischen den beiden Spalten einfügen. Ich habe diese Antwort beihttps://tex.stackexchange.com/a/95188/18588bereits und das funktioniert gut mit \begin{column}
und \end{column}
. Wie kann ich es \column
nur mit dem Befehl zum Laufen bringen?
Antwort1
Hier ist ein Workaround, den ich gefunden habe:
\documentclass{beamer}
\begin{document}
\begin{frame}
\frametitle{Lorem Ipsum}
\begin{columns}[T]
\column{.49\textwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat.
\column{.01\textwidth}
\rule{.1mm}{.7\textheight}
\column{.49\textwidth}
Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit
anim id est laborum.
\end{columns}
\end{frame}
\end{document}
Hier ist die Ausgabe:
Hier sind die Änderungen, die am ursprünglichen Code in der Frage vorgenommen wurden:
Die Option
t
für diecolumns
Umgebung wurde geändert inT
. Hier ist eine Beschreibung dieser Option aus demBeamer-Benutzerhandbuch(Abschnitt 12.7: Aufteilen eines Rahmens in mehrere Spalten):T
ist ähnlich wie diet
Option, richtet aberT
die Oberkanten der ersten Zeilen aus, währendt
die sogenannten Grundlinien der ersten Zeilen ausgerichtet werden. Wenn in Verbindung mit dert
Option seltsame Dinge passieren (wenn beispielsweise eine Grafik mit dert
Option plötzlich „nach unten fällt“, anstatt „nach oben zu gehen“), versuchen Sie stattdessen diese Option.Die Breite der beiden Textspalten wurde von auf reduziert,
.5\textwidth
um.49\textwidth
Platz für eine neue Spalte mit der Breite zu schaffen.01\textwidth
. Diese neue Spalte wird zwischen die beiden vorhandenen Textspalten eingefügt. Diese neue Spalte würde die vertikale Linie enthalten.In der neuen Spalte mit dem Befehl wurde eine vertikale Linie hinzugefügt
\rule
. Hier ist eine Beschreibung des\rule
Befehls vonDie nicht ganz so kurze Einführung in LATEX 2ε(Abschnitt 6.7: Regeln):Vor einigen Seiten ist Ihnen vielleicht der Befehl aufgefallen.
\rule[lift]{width}{height}
Bei normaler Verwendung erzeugt es eine einfache Blackbox.
\rule{3mm}{.1pt}% \rule[-1mm]{5mm}{1cm}% \rule{3mm}{.1pt}% \rule[1mm]{1cm}{5mm}% \rule{3mm}{.1pt}
Dies ist nützlich, um vertikale und horizontale Linien zu zeichnen. Die Linie auf der Titelseite wurde beispielsweise mit einem
\rule
Befehl erstellt.
Antwort2
Bearbeiten:
Hier ist eine Neudefinition der Umgebungsspalten und ihres Spaltenbefehls, um mithilfe von vertikale Linien zwischen den Spalten einzufügen tikz
overlay
.
Ich habe es so gemacht, indem ich \tikzmark
am Anfang jeder Spalte ein hinzugefügt und dann den Mittelpunkt zwischen diesem \tikzmark + der Breite des Befehls und dem der nächsten Spalte berechnet habe . Einen ähnlichen Trick habe ich auch zum Berechnen der Höhe der (neu definierten) Umgebung \tikzmark
verwendet .columns
Meine columns
Umgebung akzeptiert ein optionales Argument mit drei durch Kommas getrennten verschiedenen Optionen:
- Als erstes gibt es die Ausrichtungsoption der
\oldcolums
Umgebung (wiet
für oben,b
unten undc
für zentrierte vertikal ausgerichtete Spalten) - Die zweite Option ist die Breite der vertikalen Linie, die (nach der zweiten Kompilierung – da sie als Überlagerung hinzugefügt wird) zwischen den Spalten hinzugefügt wird.
- Die dritte Option ist die Farbe der obigen vertikalen Linien.
Sie können diesem optionalen Argument 1, 2 oder 3 Optionen hinzufügen, die Reihenfolge muss jedoch wie oben angegeben sein.
Der endgültige Code:
\documentclass[8pt]{beamer}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcounter{mycolcounter}
\newcounter{mylinecounter}
\newcounter{tempcounter}
\newcounter{tempcounterB}
\newlength\availafter
\newlength\initialtextwidth
\newcommand\tikzmark[1]{\begin{tikzpicture}[overlay,remember picture]\coordinate (#1);\end{tikzpicture}}
\newcommand\DrawLines[3]{\draw[line width=\ArgB,color=\ArgC]let\p1=(#1),\p2=(#2),\p3=(#3)in($(\x1,0)+({(\x2+\x3+\csname ColWidth\Alph{tempcounter}\endcsname)/2},\y1)$)--($(\x1,0)+({(\x2+\x3+\csname ColWidth\Alph{tempcounter}\endcsname)/2},{\textheight-\availafter})$);}
\newcommand\lcolumn[1]{\stepcounter{mycolcounter}\setlength\textwidth{\initialtextwidth}\xdef\temp{\the\dimexpr#1}\expandafter\expandafter\expandafter\global\expandafter\let\csname ColWidth\Alph{mycolcounter}\endcsname\temp\oldcolumn{#1}\tikzmark{ColStart\Alph{mycolcounter}}}
\let\oldcolumns\columns%
\let\endoldcolumns\endcolumns%
\renewenvironment{columns}[1][c]{%
\xdef\ArgA{c}%
\xdef\ArgB{1pt}%
\xdef\ArgC{black}
\xdef\Arg{#1}%
\setlength{\initialtextwidth}{\textwidth}%
\tikzmark{ColStart}%
\setcounter{mycolcounter}{0}%
\setcounter{mylinecounter}{0}%
\foreach \k[count=\m from 0] in \Arg {\ifnum\m=0\xdef\ArgA{\k}\else\ifnum\m=1\xdef\ArgB{\k}\else\xdef\ArgC{\k}\fi\fi}
\oldcolumns[\ArgA]\let\oldcolumn\column\let\column\lcolumn%
}{%
\endoldcolumns%
\setcounter{mylinecounter}{\numexpr\the\value{mycolcounter}-1\relax}%
\setlength{\availafter}{\dimexpr\textheight-\pagetotal\relax}%
\setcounter{tempcounter}{0}%
\setcounter{tempcounterB}{1}%
\foreach \col[count=\i from 0]in{1,...,\arabic{mylinecounter}}{%
\stepcounter{tempcounter}%
\stepcounter{tempcounterB}%
\begin{tikzpicture}[overlay,remember picture]%
\DrawLines{ColStart}{ColStart\Alph{tempcounter}}{ColStart\Alph{tempcounterB}}%
\end{tikzpicture}%
}%
\let\column\oldcolumn%\
}
\begin{document}
\begin{frame}
\frametitle{Lorem Ipsum}
\begin{columns}
\column{0.25\textwidth}%
\noindent1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\column{0.25\textwidth}%
\noindent1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\column{0.25\textwidth}%
\noindent1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\end{columns}
\begin{columns}[c,0.1pt,blue]
\column{0.3\textwidth}%
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\column{0.4\textwidth}%
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\column{0.2\textwidth}%
\large 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\end{columns}
\begin{columns}[b,0.3pt]
\column{0.33\textwidth}%
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\column{0.43\textwidth}%
\scriptsize1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\column{0.23\textwidth}%
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\end{columns}
\begin{columns}[t,2pt,green]
\column{0.23\textwidth}%
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\column{0.23\textwidth}%
\footnotesize 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\column{0.23\textwidth}%
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\end{columns}
\begin{columns}[c,2pt,red]
\column{0.23\textwidth}%
\tiny1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\column{0.53\textwidth}
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \\
\begin{tikzpicture}[inner sep=0,outer sep=0]
\draw[<->] (0,0)--(\textwidth,0);
\end{tikzpicture}
\end{columns}
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
\end{frame}
\end{document}
Ausgabe: