Использование \ parindent и \ parskip с \ para {} не имеет никакого эффекта - PullRequest
5 голосов
/ 25 июня 2010

Я создаю документы, используя класс memoir в XeLaTeX. У меня возникают проблемы при создании правильного представления абзаца, в частности, при создании абзацев с \paragraph{}lorem ipsum LaTeX игнорирует настройки \parskip и \parindent.

Например, если у меня есть документ

\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}

Этот набор текста выглядит так:

& EMSP; & EMSP; & EMSP; Орем Ипсум Долор Сит Амет. Aliquam Enim урна, маттис ё алике эгет, приправа ид нибх. В плато hac привычка dictumst.

& emsp; & emsp; ipsum dolor sit amet, посвященная адептированию элита. Аликвам Еним Ерна, Mattis Eu Aliquet Eget, Condimentum ID Nibh. В hac габитус плато изречение.

Это неправильно имеет отступ абзаца и пропуск, несмотря на то, что \parskip и \parindent установлены на ноль.

Можно ожидать, что вывод набора будет выглядеть следующим образом (это ужасный выбор форматирования абзаца, но иллюстрирует проблему):

Orem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit. Aliquam Enim урна, маттис ё алике эгет, приправа ид нибх. В плато hac привычка dictumst.
Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit. Аликвам Еним Ерна, Mattis Eu Aliquet Eget, Condimentum ID Nibh. В привычных привычках.

Замечу, что когда я разделяю абзацы двумя новыми строками (то есть не использую \paragraph{} и), настройки \parskip и \parindent учитываются.

Я был бы очень признателен, если бы при использовании \paragraph{} команды \parskip и \parindent не учитывались, и как можно было бы соблюдать эти команды или, наоборот, какие команды могли бы достичь такого же эффекта с абзацами, созданными с помощью \paragraph{}.

Спасибо за чтение.

Brian

Ответы [ 2 ]

5 голосов
/ 25 июня 2010

@ Брайан - Я начал помещать это в комментарии после вашего комментария к ответу Нормана Грея, но пример кода сделал его слишком большим.\ para {} не изменяет набор текста обычных абзацев.Просто, нелогично, абзац, начатый командой \ para {}, не является обычным абзацем;это элемент раздела в документе.Поиграйте с приведенным ниже кодом, чтобы увидеть, как \ parskip и \ parindent влияют на обычные абзацы, но не на элемент раздела "\ абзац".(На самом деле, \ parskip влияет даже на элементы \ para {}, но интервал перед элементом \ para {} рассчитывается всегда немного больше, чем \ parskip, поэтому между элементами \ para {} всегда есть пробел, даже если \parskip равен 0.)

Я думаю, что 99% документов LaTeX, вероятно, никогда не используют команду раздела \ para {}.Обычные абзацы в LaTeX разделяются (1) пустой строкой («обычные абзацы» 1 и 2 ниже) или (2) командой \ par («обычные абзацы» 3 и 4 ниже).

\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}
2 голосов
/ 25 июня 2010

Это похоже на правильное поведение.Как вы думаете, \paragraph должен делать?Подсказка: это не для разделения абзацев.

Согласно документам мемуаров, \paragraph является одной из команд секционирования после \subsubsection и до \subparagraph.Аргумент команды, который вы делаете пустым в своем примере, относится к заголовку абзаца.

Вы отделяете абзацы друг от друга, используя пустую строку (и это тот случай,нашел, где соблюдаются размеры \parskip и \parindent), или в некоторых более экзотических случаях, используя \par.

...