Te damos la bienvenida a proyecto on line, ahora encontrarás la solucíon de lo que estás buscando.
Solución:
Esto es lo que stackanchor
macro hace en el stackengine
paquete. Muestro tres instancias, centro, izquierda y derecha alineadas. En la última instancia, configuré el espacio entre la pila entre los elementos en 8 puntos, en lugar del valor predeterminado (3 puntos). Tenga en cuenta que la brecha se puede lograr alternativamente a través de stackanchor[8pt]top itembottom item
.
La pila predeterminada establece el espacio entre la parte inferior del elemento superior y la parte superior del elemento inferior (lo que yo llamo pilas cortas). Alternativamente, puede establecer el espacio entre las líneas base de los dos elementos apilados (lo que yo llamo pilas largas) con defstacktypeL
y setstackgapL
brecha entre líneas de base.
documentclassarticle
usepackagestackengine
parskip 1em
begindocument
defmytextIf you walk stackanchorleftright, you will see a
stackanchorhouseboat with stackanchoran old mana cat.
mytext
defstackalignmentlmytext
setstackgapS8pt
defstackalignmentrmytext
enddocument
Alternativamente, stackon
y stackunder
producirá la pila donde la línea de base no se divide, sino que se alinea con el elemento inferior (stackon
) o elemento superior {stackunder
), respectivamente.
Si está interesado en esa sintaxis en particular, lo siguiente puede ser de su interés:
documentclassarticle
makeatletter
defdual#1expandafter[email protected]#1@nil
def[email protected]#1/#2@nilbegintabular@[email protected]#1\#2endtabular
makeatother
begindocument
If you walk dualleft/right, you will see a dualhouse/boat with dualan old man/a cat.
enddocument
Utiliza el texto de parámetro de un def
inition para especificar la entrada requerida: dual
. Si desea tener un diseño diferente (no centrado verticalmente), intente usar begintabular[t]
:
o begintabular[b]
:
Aquí hay una expansión de la solución anterior que proporciona algunos key-opciones de valor:
documentclassarticle
usepackagexkeyval% http://ctan.org/pkg/xkeyval
makeatletter
newlength[email protected]newlength[email protected]
[email protected]dualkey[[email protected]]halign[c]%
[email protected]dualkey[[email protected]]valign[c]%
[email protected]dualkeytopwidthsetlength[email protected]#1
[email protected]dualkeybotwidthsetlength[email protected]#1
newcommanddual[2][,]% dual[]/
setkeysdualkeyvalign=c,halign=c,topwidth=[email protected][email protected],botwidth=[email protected][email protected],#1% Set (default) keys
expandafter[email protected]#2@nil% Print dual
def[email protected]#1/#2@nil%
begintabular[[email protected]]@[email protected] @
ifdim[email protected]<[email protected] #1elsemakebox[[email protected]]#1fi\
ifdim[email protected]<[email protected] #2elsemakebox[[email protected]]#2fi
endtabular
makeatother
begindocument
If you walk dual[valign=b]left/right, you will see a dual[valign=b,topwidth=0pt]house/boat with
dual[valign=t,halign=r]an old man/a cat.
enddocument
Ahora puede establecer la alineación vertical y horizontal dentro dual
(por defecto es c
ingrese para ambos), así como el ancho de los elementos respectivos. Esto permite un mejor flujo de la estructura de la oración, si es necesario. Sin embargo, el salto de línea al final del bloque de texto seguirá siendo problemático, debido a la naturaleza de caja de dual
.
Lo que es, eventualmente, es una caja vertical que tiene cajas horizontales adentro, entonces (en texto plano; compila con tex
/pdftex
/xetex
/luatex
):
catcode`/=13
def/#1/#2/leavevmode$vcenterhbox#1hbox#2$
If you walk , you will see a /left/right/, you will see a /house/boat/ with an
old /man/a cat/.
bye