Saltar al contenido

Construyendo un cuadro de texto personalizado usando tikz

Hacemos una verificación completa cada secciones de nuestro sitio web con el objetivo de mostrarte en todo momento la información certera y actualizada.

Solución:

Tuve la misma idea que Christian, pero como mi implementación se parece un poco más a la original, estoy publicando otra respuesta.

documentclassarticle
usepackage[most]tcolorbox
definecolorbackgroundHTMLFCF9EE
definecolorlinecolorHTML581810

begindocument
begintcolorbox[
    enhanced,
    boxsep=0.25ex,
    arc=0mm,
    borderline west=1pt-0.5ptlinecolor,
    borderline east=1pt-0.5ptlinecolor,
    colback=background,
    colframe=background,
    overlay=
          foreach n in north east,north west,south east,south west
          draw [linecolor, fill=linecolor] (frame.n) circle (2pt); ; ]
begindescription
    item[Dungeon Master (DM):] OK, one at a time. Phillip, you are looking at the gargoyles?
    item[Phillip:] Yeah. Is there any hint they might be creatures and not     decorations?
    item[DM:] Make an Intelligence check.
    item[Phillip:] Does my Investigation skill apply?
    item[DM:] Sure!
    item[Phillip (rolling a d20):] Ugh. Seven.
    item[DM:] They look like decorations to you. And Amy, Riva is checking out the drawbridge?
enddescription
endtcolorbox
enddocument

tcolorbox


EDITAR:

Como probablemente desee utilizar este cuadro varias veces en su documento, tiene sentido definir un nuevo entorno basado en tcolorbox como esto:

newtcolorboxdungeonboxenhanced,
    boxsep=0.25ex,
    arc=0mm,
    borderline west=1pt-0.5ptlinecolor,
    borderline east=1pt-0.5ptlinecolor,
    colback=background,
    colframe=background,
    overlay=
      foreach n in north east,north west,south east,south west
        %
        draw [linecolor, fill=linecolor] (frame.n) circle (2pt);
        ;
    

Luego puede usarlo fácilmente así:

begindungeonbox
...
enddungeonbox

Aquí está tcolorbox con overlay adiciones, etc. Es frágil.

documentclassarticle
usepackagetikz
usetikzlibrarycalc
usepackage[most]tcolorbox
usepackageblindtext

newlengthvertlinewidth
setlengthvertlinewidth1pt
newlengthvertlineoffset
setlengthvertlineoffset-5pt
newlengthcircleradius
setlengthcircleradius3pt
newlengthcircleoffset
setlengthcircleoffset0pt


definecolordungeoncolorRGB255,0,0

newtcolorboxdungeonbox[1][]enhanced jigsaw,frame hidden,boxrule=0pt,
  breakable,
  sharp corners,
  drop lifted shadow,
  colback=white!90!black,
  borderline vertical=vertlinewidthvertlineoffsetdungeoncolor,
  overlay=opacity=1.0,
    node (A) at (frame.north west) ;draw[fill,dungeoncolor] ($(A) + (vertlineoffset-vertlinewidth+0.5circleradius,circleoffset+circleradius)$) circle (circleradius);
    node (B) at (frame.south west) ;draw[fill,dungeoncolor] ($(B) + (vertlineoffset-vertlinewidth+0.5circleradius,-circleoffset-circleradius)$) circle (circleradius);
    node (C) at (frame.south east) ;draw[fill,dungeoncolor] ($(C) + (-vertlineoffset+vertlinewidth-0.5circleradius,-circleoffset-circleradius)$) circle (circleradius);
    node (D) at (frame.north east) ;draw[fill,dungeoncolor] ($(D) + (-vertlineoffset+vertlinewidth-0.5circleradius,circleoffset+circleradius)$) circle (circleradius);,
  #1


begindocument

begindungeonbox
blindtext[10]
enddungeonbox
enddocument

ingrese la descripción de la imagen aquí

Puede completar el texto en el mismo instante en que crea el rectángulo. Utilice el hecho de que los nodos tienen forma de rectángulo por defecto (?). Tikz ajusta automáticamente el tamaño del rectángulo por arte de magia. Como parece que solo desea cambiar el tamaño vertical, especifique el tamaño horizontal del cuadro. Para eso, puede especificar el ancho del texto para que Tikz sepa dónde romper oraciones largas (text width =). Probablemente haya una manera fácil de dibujar las líneas rojas y los círculos automáticamente especificando el nodo /.style, pero no sé cómo hacerlo. Usé las esquinas del nodo rectangular usando el anchors tal como north east etc para colocar las líneas rojas y los círculos.

documentclass[10pt,twoside]article
usepackagetikz

begindocument
begintikzpicture
% make a node (rectangle)
% filled with gray
% occuplying half the current textwidth
% name it mybox for reffering later
% add the text to it right away so that tikz can 
% calculate how big the box should be
node [fill=gray, text width=0.5textwidth] (0,0) (mybox)
%
begindescription
item [dungeon master] says Hi.
item [player one] says Hi.
item [player two] says Hi.
item [player three] says Hi.
enddescription
;
%use the above node's anchors to position the red lines and circles
draw [red, thick] (mybox.south west) -- (mybox.north west);
    draw [red,fill] (mybox.south west) circle [radius=0.05];
    draw [red,fill] (mybox.north west) circle [radius=0.05];
draw [red,thick] (mybox.south east) -- (mybox.north east);
    draw [red, fill] (mybox.south east) circle [radius=0.05];
    draw [red, fill] (mybox.north east) circle [radius=0.05];
endtikzpicture
enddocument

DandD

Al final de todo puedes encontrar las interpretaciones de otros gestores de proyectos, tú aún tienes la libertad de dejar el tuyo si dominas el tema.

¡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 *