Saltar al contenido

¿Cómo poner una regla vertical entre columnas Beamer creadas con el comando column?

Después de de una prolongada compilación de datos solucionamos esta aprieto que pueden tener muchos lectores. Te compartimos la solución y deseamos resultarte de mucha ayuda.

Solución:

Aquí hay una solución alternativa a la que he llegado:

documentclassbeamer
begindocument

beginframe
frametitleLorem Ipsum
begincolumns[T]
  column.49textwidth
  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.01textwidth
  rule.1mm.7textheight

  column.49textwidth
  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.
endcolumns
endframe

enddocument

Aquí está el resultado:

Captura de pantalla de la salida

Estos son los cambios realizados en el código original proporcionado en la pregunta:

  • La opción t Para el columns el entorno se ha cambiado a T. Aquí hay una descripción de esta opción de la Guía del usuario de Beamer (Sección 12.7: División de un marco en varias columnas):

    T es similar al t opción, pero T alinea la parte superior de las primeras líneas mientras t alinea las llamadas líneas base de las primeras líneas. Si parecen suceder cosas extrañas junto con el t opción (por ejemplo, si un gráfico “cae” repentinamente con la t opción en lugar de “subir”), intente utilizar esta opción en su lugar.

  • El ancho de las dos columnas que contienen texto se ha reducido de .5textwidth para .49textwidth para hacer espacio para una nueva columna de ancho .01textwidth. Esta nueva columna se coloca entre las dos columnas de texto existentes. Esta nueva columna contendría la regla vertical.

  • Se ha agregado una regla vertical en la nueva columna con la rule mando. Aquí hay una descripción del rule comando de La no tan breve introducción a LATEX 2ε (Sección 6.7: Reglas):

    Algunas páginas atrás, es posible que haya notado el comando

    rule[lift]widthheight
    

    En uso normal produce una simple caja negra.

    rule3mm.1pt%
    rule[-1mm]5mm1cm%
    rule3mm.1pt%
    rule[1mm]1cm5mm%
    rule3mm.1pt
    

    Captura de pantalla de la figura de la Sección 6.7 de lshort.pdf

    Esto es útil para dibujar líneas verticales y horizontales. La línea de la página de título, por ejemplo, se ha creado con un rule mando.

Editar:
Aquí hay una redefinición de las columnas del entorno y su comando de columna para contener líneas verticales entre las columnas con la ayuda de tikzoverlay.

La forma en que usé es agregando un tikzmark al principio de cada columna y luego calculando el punto medio entre este tikzmark + el ancho del comando y el de la siguiente columna tikzmark. También utilicé un truco similar para calcular la altura del columns (redefinido) medio ambiente.

Mi columns entorno, toma un argumento opcional con 3 opciones diferentes separadas por comas:

  1. Primero está la opción de alineación del oldcolums medio ambiente (como t para la parte superior, b para fondo y c para columnas alineadas verticalmente centradas)
  2. La segunda opción es el ancho de la línea vertical que se agregará (después de la segunda compilación -porque se agrega como un exceso-) entre las columnas.
  3. La tercera opción es el color de las líneas verticales anteriores.

Puede agregar 1, 2 o 3 opciones en este argumento opcional, pero el orden debe ser el anterior.

El código final:

documentclass[8pt]beamer
usepackagetikz
usetikzlibrarycalc

newcountermycolcounter
newcountermylinecounter
newcountertempcounter
newcountertempcounterB
newlengthavailafter
newlengthinitialtextwidth

newcommandtikzmark[1]begintikzpicture[overlay,remember picture]coordinate (#1);endtikzpicture

newcommandDrawLines[3]draw[line width=ArgB,color=ArgC]letp1=(#1),p2=(#2),p3=(#3)in($(x1,0)+((x2+x3+csname ColWidthAlphtempcounterendcsname)/2,y1)$)--($(x1,0)+((x2+x3+csname ColWidthAlphtempcounterendcsname)/2,textheight-availafter)$);


newcommandlcolumn[1]stepcountermycolcountersetlengthtextwidthinitialtextwidthxdeftempthedimexpr#1expandafterexpandafterexpandafterglobalexpandafterletcsname ColWidthAlphmycolcounterendcsnametempoldcolumn#1tikzmarkColStartAlphmycolcounter

letoldcolumnscolumns%
letendoldcolumnsendcolumns%
renewenvironmentcolumns[1][c]%
xdefArgAc%
xdefArgB1pt%
xdefArgCblack
xdefArg#1%
setlengthinitialtextwidthtextwidth%
tikzmarkColStart%
setcountermycolcounter0%
setcountermylinecounter0%
foreach k[count=m from 0] in Arg ifnumm=0xdefArgAkelseifnumm=1xdefArgBkelsexdefArgCkfifi
oldcolumns[ArgA]letoldcolumncolumnletcolumnlcolumn%
%
endoldcolumns%
setcountermylinecounternumexprthevaluemycolcounter-1relax%
setlengthavailafterdimexprtextheight-pagetotalrelax%
setcountertempcounter0%
setcountertempcounterB1%
foreach col[count=i from 0]in1,...,arabicmylinecounter%
stepcountertempcounter%
stepcountertempcounterB%
begintikzpicture[overlay,remember picture]%
DrawLinesColStartColStartAlphtempcounterColStartAlphtempcounterB%
endtikzpicture%
%
letcolumnoldcolumn%



begindocument

beginframe
  frametitleLorem Ipsum

  begincolumns
           column0.25textwidth%
          noindent1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
          begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
          column0.25textwidth%
          noindent1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
      column0.25textwidth%
      noindent1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
endcolumns

    begincolumns[c,0.1pt,blue]
      column0.3textwidth%
      1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
      column0.4textwidth%
      1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
      column0.2textwidth%
      large 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
      endtikzpicture
    endcolumns

    begincolumns[b,0.3pt]
          column0.33textwidth%
          1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
      column0.43textwidth%
      scriptsize1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
      column0.23textwidth%
      1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
      endtikzpicture
    endcolumns

        begincolumns[t,2pt,green]
          column0.23textwidth%
          1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
      column0.23textwidth%
      footnotesize 1 1 1 1 1 1  1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
      column0.23textwidth%
      1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
      endtikzpicture
        endcolumns

begincolumns[c,2pt,red]
          column0.23textwidth%
          tiny1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
      column0.53textwidth
      1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
      begintikzpicture[inner sep=0,outer sep=0]
        draw[<->] (0,0)--(textwidth,0);
        endtikzpicture
    endcolumns

   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
endframe

enddocument

Producción:

ingrese la descripción de la imagen aquí

Si estás de acuerdo, tienes la opción de dejar una reseña acerca de qué te ha impresionado de este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *