2010-03-31 12 views
11

¿Por qué el siguiente comando no produce una regla horizontal que llene el espacio hasta el final de la línea?Regla LaTeX llenando la línea

Hello \rule[0.5em]{\fill}{1pt} 

Es mi entendimiento de que esto debe imprimir el texto “Hello” seguido por una línea horizontal que se extiende hasta el final de la línea, de forma análoga a la macro \hfill que es efectivamente equivalente a \hspace\fill. - Pero, en efecto, este comando solo produce el texto "Hello", no hay regla.

Soy consciente de que el efecto puede ser producido por \hrulefill pero no puede utilizarse aquí porque quiero un elevó regla y \hrulefill no funciona junto con \raisebox y quiero que mi regla para pasar por encima de la línea base (en el mejor de los casos en el medio de la línea).

Respuesta

11

No tengo una respuesta satisfactoria sobre por qué el comando que presentó no funciona, pero puedo ofrecer una solución efectiva. Ponga

% Raised Rule Command: 
% Arg 1 (Optional) - How high to raise the rule 
% Arg 2   - Thickness of the rule 
\newcommand{\raisedrule}[2][0em]{\leaders\hbox{\rule[#1]{1pt}{#2}}\hfill} 

en el prefacio de su documento, y luego se puede lograr lo que usted esperaba con:

Hello \raisedrule[0.5em]{1pt} 
+0

Por desgracia, no entiendo cómo funciona esto ya que el '\ hfill' es * * fuera del' \ hbox' pero funciona como un encanto, gracias. –

+4

Esa parte que puedo explicar. Los líderes son el caso general de pegamento en TeX; usualmente, el pegamento llena el espacio con nada. Pero los líderes llenan el espacio con lo que quieras. La forma general de esto es '\ leaders {box o rule} \ hskip {glue}', ya que '\ hfill' es un tipo especial de pegamento infinitamente strechable, el comando de líderes tiene las dos cosas que necesita: un elemento para repetir y pega para decirle hasta dónde extender la repetición. – RTBarnard

+0

Con algún código de http://tex.stackexchange.com/a/17130/13450 esto también funciona para rodear el texto a ambos lados: '\ newcommand {\ raisedrule} [2] [0em] {\ leavevmode \ leaders \ hbox {\ rule [# 1] {1pt} {# 2}} \ hfill \ kern0pt} '. – Christian

6

La regla horizontal de altura 1pt y criado por 1.5pt.

Hello \leaders\vrule height 2.5pt depth -1.5pt \hfill \null 
Cuestiones relacionadas