2010-06-25 12 views
5

Estoy creando documentos con la clase memoir en XeLaTeX. Tengo problemas para crear una presentación de párrafo adecuada y, en particular, cuando creo párrafos con \paragraph{}lorem ipsum LaTeX ignora las configuraciones \parskip y \parindent.El uso de parindent y parskip con paragraph {} no tiene efecto

Por ejemplo, si tengo un documento

\documentclass[oneside,11pt]{memoir} 
\usepackage{fontspec}% font selecting commands 
\usepackage{xunicode}% unicode character macros 
\usepackage{xltxtra} % some fixes/extras 

\begin{document} 
\setlength{\parskip}{0pt} % 1ex plus 0.5ex minus 0.2ex} 
\setlength{\parindent}{0pt} 
\pagestyle{plain} 

\paragraph{}orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 
\paragraph{}ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, 
mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst. 
\end{document} 

Este componen tipográficamente así:

      Orem ipsum dolor sit amet, elit consectetur adipiscing. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. En hac habitasse platea dictumst.

      ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. En hac habitasse platea dictumst.

Esto tiene incorrectamente tanto sangría de párrafo y saltar, a pesar de \parskip y \parindent se puso a cero.

Uno esperaría que la salida tipografía se vea como este (que es una fea elección de formato de párrafo, pero ilustra la emisión):

Orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. En hac habitasse platea dictumst.
ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. En hac habitasse platea dictumst.

observo que cuando se separo párrafos por dos saltos de línea (es decir, no utilizan \paragraph{}, y) la configuración \parskip\parindent y son honrados.

estaría muy agradecido de saber por qué, cuando se utiliza \paragraph{}, los \parskip\parindent y comandos no se respetan, y cómo se podría o bien tienen estos comandos honrados o, alternativamente, qué comandos se lograría el mismo efecto con los párrafos creada con \paragraph{} .

Gracias por leer.

Brian

Respuesta

5

@Brian - Empecé a poner esto en un comentario después de su comentario a la respuesta de Norman Gray, pero el ejemplo del código lo hizo demasiado grande. \ paragraph {} no cambia la composición tipográfica de párrafos regulares. Es solo que, en contra de la intuición, el párrafo iniciado por el comando \ paragraph {} no es un párrafo regular; es un elemento de sección en el documento. Juega con el siguiente código para ver cómo \ parrsanto y \ parrsider afecta los párrafos normales pero no el elemento de sección "\ paragraph". (En realidad, \ parskip afecta incluso a los \ paragraph {} elementos, pero el espaciado antes de que un elemento \ paragraph {} se calcule para ser siempre un poco más que \ parskip, por lo que siempre hay espacio entre \ paragraph {} elementos incluso si \ parskip es 0.)

Creo que el 99% de los documentos LaTeX probablemente nunca utilicen el comando de la sección \ paragraph {}. Los párrafos regulares en LaTeX están separados por (1) una línea en blanco ("párrafos regulares" 1 y 2 a continuación) o (2) por el comando \ par ("párrafos regulares" 3 y 4 a continuación).

\documentclass[oneside,11pt]{memoir} 
\usepackage{fontspec}% font selecting commands 
%\usepackage{xunicode}% unicode character macros 
%\usepackage{xltxtra} % some fixes/extras 

\begin{document} 
\setlength{\parskip}{0pt} % 1ex plus 0.5ex minus 0.2ex} 
\setlength{\parindent}{0pt} 
\pagestyle{plain} 

\paragraph{paragraph section 2}adorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

regular paragraph 1 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

regular paragraph 2 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

\paragraph{paragraph section 2}ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, 
mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst. 
\par regular paragraph 3 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 
\par regular paragraph 4 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

\end{document} 
+0

@Herbert: Gracias amablemente por la respuesta. Estoy usando '\ paragraph' porque, en ocasiones, los párrafos deben estar numerados y contados, lo que entiendo es una buena solución, aunque tal vez no la única, basada en esta pregunta: http://stackoverflow.com/questions/543208 –

+0

Brian - Eso tiene sentido, pero el comando de la sección \ paragraph {} no es el que elegiría. Usar el entorno de lista 'enumerar' es probablemente la mejor opción, aunque incluso entonces podría haber algunos cambios de formato contraintuitivos que pueda necesitar. Si desea continuar con la sección \ paragraph {}, puede usar el paquete "sectsty" para agregar numeración y cambiar el formato (lea los documentos de sectsty para obtener más información), o simplemente cambie y vaya con la lista de enumerados. –

+1

No, a pesar del consejo en la otra respuesta que señaló (y está de acuerdo con Herbert), '\ paragraph' no es lo que quiere aquí, porque es solo una forma extraña de deletrear' \ subsubsubsection', por lo que solo tiene sentido si se usa dentro de una '\ subsubsection'. Es un comando de seccionamiento, nada que ver con los párrafos. La definición de '\ N' en su pregunta original es la mejor solución aquí. Tuve que hacer esto yo mismo, no encontré ningún paquete que lo hiciera, y recurrí a (algo similar a) esta solución. Por razones fundamentales de LaTeX, numerar párrafos es difícil de hacer automáticamente. –

2

que se parece a un comportamiento correcto. ¿Qué crees que debería hacer \paragraph? Sugerencia: no es para separar párrafos.

De acuerdo con los documentos de memorias, \paragraph es uno de los comandos de sección, después de \subsubsection y antes de \subparagraph. El argumento para el comando, que está haciendo vacío en su ejemplo, es para el título del párrafo.

a separar los párrafos entre sí mediante el uso de una línea en blanco (y este es el caso que haya encontrado, donde se respetan los \parskip\parindent y dimensiones), o en algunos casos un poco más exóticos mediante el uso de \par.

+0

Gracias por la respuesta. Pensaría que '\ paragraph' proporcionaría secciones basadas en párrafos, sin cambiar la composición tipográfica del párrafo, es decir, honor' \ par {indent, skip} 'y/o simplemente no introducir su propia sangría de párrafo (hasta cierto punto) y salta Agradecería las ideas sobre cómo eliminar cualquier formato asociado con el comando de sección de párrafo. –

+0

@Brian - Creo que la mejor solución, en su caso, es no utilizar el comando \ paragraph {} en absoluto. Parece que no tiene ningún uso para eso. ¿Por qué lo estás usando? –

Cuestiones relacionadas