2010-11-23 28 views

Respuesta

5

¿La separación de sílabas resolverá su problema? Debería poder habilitar la separación silábica con un atributo hyphenate="true". La ubicación de este atributo dependerá de dónde desee habilitar la separación silábica.

Aquí hay un enlace al cumplimiento de separación de palabras de FOP: Apache FOP Compliance Page

Aquí hay un enlace a la especificación XSL: XSL SpeC#hyphenate

Si no es así, puede que tenga que experimentar con algunas mantiene propiedades (como keep-together.within-line).

+1

No funciona. – Alex

11

Puede especificar el atributo de opción de envoltura en su fo:block así:

<fo:block wrap-option="wrap"> ... stuff </fo:block> 

Aquí está la especificación XSL-FO para este atributo:

XSL Definición:

Valor: no-wrap | envolver | heredan

inicial: abrigo

se refiere a:: FO: bloque, fo: inline, fo: de número de página, fo: page-number-citación

heredadas: Sí

porcentajes: N/A

Medios: visuales

valores tienen los siguientes significados:

sin envoltura

No se realizará ningún ajuste de líneas.

En el caso cuando las líneas son más largas que la anchura disponible del contenido-rectángulo , el desbordamiento se pueden tratar de acuerdo con la propiedad "desbordamiento" especificado en la referencia del área de .

envoltura

de línea de ruptura se producirá si la línea desborda la anchura disponible bloque. No se administrarán marcadores especiales ni ningún otro tratamiento con .

Especifica cómo se va a manejar el ajuste de línea (salto de línea) del contenido del objeto de formato .

implementaciones deben apoyar el valor "no-wrap", como se define en esta Recomendación , cuando el valor de "-tratamiento de avance de línea" es "preservar".

También puede definir el atributo wrap-option en un fo:table-cell

<fo:table-cell wrap-option="wrap"> ... </fo:table-cell> 

y los fo:block s dentro heredarán la propiedad.

+0

no funciona para mí –

+4

'wrap-option =" wrap "' le dice al formateador que ** realice el salto de línea **, pero no es una garantía de que el salto de línea ** encuentre ** un lugar adecuado para un salto de línea; además, 'wrap' es el valor de propiedad predeterminado, por lo que generalmente no es necesario establecerlo explícitamente. – lfurini

7

La respuesta de Zkoh (wraping) le ayudará solo si el texto contiene varias palabras divididas por espacios en blanco. En el caso de palabras largas (como mensionadas en cuestión), la separación silábica es un camino a seguir (como Daniel sugirió).

No puede haber bastantes problemas con la separación de palabras en la FOP:

  1. FOP es el uso de algoritmos de separación silábica de TeX y debido a algunos problemas de licencia, los algoritmos (al menos para algunos idiomas) no son parte de distribución binaria FOP estándar (como se indica here) y se debe descargar por separado desde OFFO web site. Hay dos tipos de archivos de patrones de separación por sílabas en el sitio web. Formato XML (que debe compilarse primero para ser utilizado con FOP) y archivo JAR (ya compilado). ¡Asegúrate de descargar la versión compilada! La instalación es sencilla y well documented - simplemente suelte el binario OFFO en la carpeta lib de FOP y eso es ...
  2. No olvide especificar el idioma de su documento y, si es necesario, habilite la separación de sílabas en el nivel del bloque (es heredado así que agréguelo a el elemento raíz y que debe estar bien) - ver FOP FAQ
+0

Esta debería ser la respuesta aceptada. El sitio web de OFFO especificado aquí no funciona, aquí hay otro enlace a [OFFO] (http://offo.sourceforge.net/). Además, como se mencionó, el idioma xml: lang = "en" debe agregarse a la raíz de su archivo (esto fue difícil de entender ...). – Sakamiai

1

uso together.within columnas keep-= "siempre" en lugar de guardar-juntos = "siempre" de mantener las líneas de largo con en celda de tabla.

Cuestiones relacionadas