LINUX.ORG.RU

LaTeX appendix

 ,


0

1

Прошу помощи у LaTeX`ников =)

Стандартное оформление приложений (в article) совсем не соответствует желаемому.

Подскажите, пожалуйста, можно ли как-то изменить заголовок приложения так, чтобы:

1. «Приложение 1» выравнивалось по правому краю, 2. «Название приложения» - по центру.

Да и как вообще вставить перенос строки после «Приложение 1»?

В

\gdef\thesection{\appendixname\hspace{0.2cm}\@arabic\c@section}

\par ставить оказалось бесполезно(

Заранее спасибо всем откликнувшимся! =)

делал наскоро диплом, первый раз в латехе. По правилам нужно было в оглавлении сделать без переноса строки, а в тексте — с переносом и по центру. получилось, конечно, очень костыльно, и приложения как такового нет вообще:

\newcommand{\append}[1]{
  \stepcounter{section}
  \newpage
  \renewcommand\thesection{\Asbuk{section}}
  \renewcommand\thesubsection{\Asbuk{section}.\arabic{subsection}}
  \paragraph{\centerline{Приложение \Asbuk{section}}}
  \paragraph{\centerline{{#1}}}
  \addcontentsline{toc}{section}{Приложение \Asbuk{section} #1}
}

zarkone ★★ ()
Ответ на: комментарий от zarkone

Спасибо!

Действительно, выглядит как надо =)

Правда если название длинное, не помещается в одну строку, то никакого переноса нет, просто часть названия вылезает за границу страницы.

хочется конечно сделать как-то «честнее»...

TatianaSh ()
Ответ на: комментарий от TatianaSh

да, и кроме этого надо учесть, что это не «appendix», т.е. это просто заголовок, с этим могут быть какие-то сложности. Про перенос не знаю, нужно искать-пробовать, у меня такой проблемы просто не было

zarkone ★★ ()
Ответ на: комментарий от TatianaSh

Неужели никто не знает как вставить перенос строки в заголовок?

anonymous ()
Ответ на: комментарий от anonymous

Татьяна, да все бы хорошо, только где минимальный пример нерабочей ситуации, который можно у себя собрать и исправить? от себя только добавлю ссылку на пример того, чего я хочу увидеть от вас.

anonymous ()
Ответ на: комментарий от anonymous

Да собственно это одно и то же, просто первый вопрос, на который вы дали ссылку, как-то не вызвал ни у кого интереса )

Я постаралась сделать вопрос покороче, но видимо испортила окончательно)

Суть в том, что хочу из:

ПРИЛОЖЕНИЕ 1. НАЗВАНИЕ ПРИЛОЖЕНИЯ

Сделать:

____________________________ПРИЛОЖЕНИЕ 1

__________НАЗВАНИЕ ПРИЛОЖЕНИЯ___________

А дела заглохло уже на том, как вставить перенос строки после «ПРИЛОЖЕНИЕ 1»

\gdef\thesection{\appendixname\hspace{0.2cm}\@arabic\c@section\par}

приводит к ошибке.

А переопределение \section вообще какое-то неполноценное... (опять же написала подробнее в вопросе, на кот. Вы ссылались)

TatianaSh ()
Ответ на: комментарий от TatianaSh

\gdef\thesection{\appendixname\hspace{0.2cm}\@arabic\c@section\par}

приводит к ошибке

Естественно, потому что в аргументе \par! А по умолчанию тех проверяет, не попал ли \par или \cr в аргумент, если попал, считается, что пользователь забыл закрыть скобку — выдается ошибка.

Вам нужно, чтобы у команды был длинный аргумент — добавляйте перед \gdef идентификатор \long.

И еще: \gdef эквивалентно \global\def → определение макроса, которое будет работать и вне текущей области видимости. Если вы делаете определение в тексте документа, а не тексте команды, писать \gdef не нужно (это не ошибка, но просто избыточность).

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

Что есть длинный аргумент? Это не аргумент с \par или \cr?

\long\def\thesection{\appendixname\hspace{0.2cm}\@arabic\c@section\par}

тоже ведь дает ошибку со скобкой -

Runaway argument? {\numberline {{\Russian \CYRP \cyrr \cyri \cyrl \cyro \cyrzh \cyre \cyrn \ETC. ! Paragraph ended before \contentsline was complete. <to be read again> \par l.23 ...re \cyrn \cyri \cyre }\hspace {0.2cm}3\par .\relax }333\IeC {\CYRN }... I suspect you've forgotten a `}', causing me to apply this control sequence to too much text. How can we recover? My plan is to forget the whole thing and hope for the best.

с \gdef хорошее замечание =)

TatianaSh ()
Ответ на: комментарий от TatianaSh

Правильно: \thesection вызывается внутри \section, которая отнюдь не \long. Переопределять надо \section.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от TatianaSh

Да, нужно делать наподобие \chapter, да еще и не забыть про \section*, если таковую надо будет использовать. Если же нет, то можно вообще какую-нибудь халяву сделать вроде

\long\def\section#1{\kern 2em plus 3pt minus 3pt\leavevmode\refstepcounter{\section}
\hfill\beginblock\large\textbf\sectionname\thesection\par\nobreak\centerline{#1}\endblock}

(не проверял, возможны ашыпки и очепятки).

Ну и следует все-таки проверить вариант, когда название главы длиннее строки, либо же вместо \centerline воткнуть окружение center

Eddy_Em ☆☆☆☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.