2009-06-11 10 views
37

Tengo un problema con el paquete de anuncios en látex. Necesito insertar un código fuente del siguiente documento XML http://www.sparxsystems.com.au/downloads/profiles/EP_Extensions.xml en el apéndice de mi tesis maestra. El problema es que no importa qué opciones pase al paquete, parece que no puedo colocarlo en la página. Las líneas en la lista son demasiado largas, y el paquete de listas no las envuelve, lo que parece extraño ... ¿Qué combinación de opciones hará el truco?Cómo forzar el ajuste de línea en el paquete de listados?

En el momento en que utilizo la siguiente instrucción lstset:

\lstset{ 
breakindent=0em, 
language=XML, 
basicstyle=\footnotesize, 
numbers=left, 
numberstyle=\footnotesize, 
stepnumber=2, 
numbersep=5pt, 
backgroundcolor=\color{white}, 
showspaces=false, 
showstringspaces=false, 
showtabs=false, 
frame=single, 
tabsize=2, 
captionpos=b, 
breaklines=true, 
breakatwhitespace=true, 
breakautoindent=true, 
escapeinside={\%*}{*)}, 
linewidth=\textwidth 
} 

Lo cual, sin otras opciones establecidas, y en combinación con el siguiente comando:

\lstinputlisting{EP_Extensions.xml} 

listas de origen del archivo dado a la siguiente salida: alt text

Respuesta

4

Todo lo que puedo hacer es señalarlo en the listings docs y sugerir que hay una sección llamada "Márgenes y forma de línea". ¿Estas opciones están entre las que has probado?

En particular, ver opciones con nombres como linewidth, breaklines, y sin duda alguna, que breakautoindent sugiere que listings apoya sus necesidades.

+0

Probé todas las combinaciones de ellas que pude pensar, y no funciona. – Adam

+2

Hmmm ... Sospecho que hay poco que podemos hacer por usted sin algún código para mirar. – dmckee

2

No es una gran respuesta, pero una idea es ajustar la palabra al código fuente antes de incluirlo. Si está en Linux, puede usar el comando veces para esto. Claramente esto funciona mejor si el texto está en una fuente de ancho fijo, que recomendaría en cualquier caso para las listas de códigos.

51

acabo de tener este problema ...

breaklines trabajó para mí, aunque sí es necesario para ponerlo en cierto - el valor por defecto es falso:

\lstinputlisting[style=Python, 
    caption=My Class, 
    label={mine.py}, 
    breaklines=true, 
    ]{../python/mine.py} 

es más o menos lo que solía

+0

Una lista completa de opciones está disponible en https://en.wikibooks.org/wiki/LaTeX/Packages/Listings –

7

he tenido este problema y esta página ocupa un lugar destacado en google así que aquí era la solución para mí:

que tenía la siguiente inclusión: \usepackage[none]{hyphenat} w que causa el problema descrito anteriormente. Lo estaba usando para solucionar el problema del látex quebrantando líneas automáticamente en medio de una palabra, lo cual se ve realmente estúpido en algunas circunstancias.

Después de mucho buscar una alternativa a esta solución, no encontré nada adecuado y me conformé con las líneas correctamente rotas, pero con una mala separación de los guiones.

+0

¡Gracias! Tenía exactamente el mismo problema, y ​​no podía entender por qué los listados no romperían mis líneas, incluso con líneas de corte = verdadero. Me acabas de salvar un montón de arañazos en la cabeza. – Zero3

Cuestiones relacionadas