2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 подписи к рисункам
Сообщение31.05.2010, 18:53 
Аватара пользователя


08/04/10
76
Санкт-Петербург
Как вручную сделать переход на следующую строку? Автоматически длинная подпись к рисунку растягивается на всю ширину страницы, при этом на второй строчке может оказаться только одно слово. \\ не работает.

Ещё хотелось бы уменьшить расстояние между рисунком и подписью к нему, но это не так важно :-)

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение31.05.2010, 19:15 


04/02/08
325
Буково
За расстояние над подписью отвечает \abovecaptionskip.
Посмотрите, как генерируется подпись:
Код:
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1: #2}%
  \ifdim \wd\@tempboxa >\hsize
    #1: #2\par
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}

Если вам не нравится - просто переопределите команду \@makecaption.

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение31.05.2010, 21:05 
Заблокирован по собственному желанию
Аватара пользователя


18/05/09
3612
Много-много фокусов с подписями Вы найдёте в документе
"Using Imported Graphics in LATEX2", автор Keith Reckdahl, стр. 51-58, пакет caption2.

Искать ссылку, пардон не стал, надеюсь, Вы справитесь. Не справитесь --- найду.

  • Даже без пакета --- подпись (или подпись вместе с рисунком?) можно сунуть в parbox заданной ширины.
  • Я их отцентрировал этим пакетом, и это одно слово у меня висит посдерине.
  • Может, Вас устроит самовольное разбиение подписи типа
    \caption{ \hbox{один кусок подписи} \hbox{второй кусок подписи.} }

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение31.05.2010, 22:22 


04/02/08
325
Буково
Если использовать стандартное определение подписи, с parbox получится некрасиво: у вас будет надпись "Рис." слева от бокса с текстом, да и ругань будет при компиляции.
Вот так будет намного лучше:
Код:
\makeatletter
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \hbox to\textwidth{\hfill\parbox{0.8\textwidth}{#1: #2}\hfill}
  \vskip\belowcaptionskip}
\makeatother
\begin{document}
\begin{figure}
\includegraphics{картинка}
\caption{Длинное-длинное название, которое, скорее всего, не уместится в одну строчку и будет разбито на две (а то и три) строки}
\end{figure}
\end{document}

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение01.06.2010, 00:08 
Заблокирован по собственному желанию
Аватара пользователя


18/05/09
3612
Да вроде легко всё было. Посмотрел --- в парбокс засовывалось всё вместе:
Код:
\newcommand{\Bfig}[3]{%  {width}  {id}  (caption)
\parbox[b]{#1}{%
\includegraphics[width=#1]{\FigDir#2.eps}\caption{{\small #3}}\label{F#2}}%
}}

\begin{figure}[t]
\Bfig{.4\textwidth}{Fig1}{подпись под первой картинкой}
\hfill%
\Bfig{.4\textwidth}{Fig2}{подпись под второй картинкой}
\end{figure}


Вот:
\begin{figure}
\parbox[b]{30mm}{%
\setlength{\unitlength}{1mm}
\begin{picture}(30,10)\put(0,0){\line(3,1){30}}\put(0,10){\line(3,-1){30}}\end{picture}
\caption{Подпись подпись подпись подпись.}
}
\end{figure}

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение01.06.2010, 22:15 
Аватара пользователя


08/04/10
76
Санкт-Петербург
Спасибо!
Не думал, что это так непросто. Мне казалось, все любят подписи с выравниванием по центру и "ручным" переходом на следующую строчку :-)
Пишу магистерскую - и это мой первый ТеХовский документ. Поэтому ещё плохо разбираюсь. Уделять время разбирательствам сейчас нет возможности - и так едва успеваю написать. Процесс познания осложняется ещё и тем, что мой ин.яз. - немецкий, а не английский.
Боксы работают, но выравнивание получается по левому краю (вернее, по ширине). А хочется по центру. Нашёл простое решение:
Код:
\begin{figure}
...
\caption{первая строчка}
\small
\centerline{вторая}
...
\end{figure}

"Грязный трюк", но получается как раз то, что нужно.

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение02.06.2010, 00:41 


10/09/06
172
Vinnitsa
Посмотрел свои файлы, где я использовал класс документа memoir. Так переход в caption на новую строчку осуществлял с помощью \protect\\. Такой вариант у Вас не проходит???

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение02.06.2010, 08:06 


04/02/08
325
Буково
Цитата:
Боксы работают, но выравнивание получается по левому краю (вернее, по ширине). А хочется по центру.

Так я же вам подсказал самое простое решение: добавьте в преамбулу документа
Код:
\makeatletter
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \hbox to\textwidth{\hfill\parbox{0.8\textwidth}{#1: #2}\hfill}
  \vskip\belowcaptionskip}
\makeatother

Внутри \caption в этом случае вы сможете спокойно разрывать строки. Если же вы хотите, чтобы и разрывать строки можно было, и чтобы выравнивание каждой строки было по центру, пишите:
Код:
\makeatletter
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \hbox to\textwidth{\hfill\parbox{0.8\textwidth}{\begin{center}#1: #2\end{center}}\hfill}
  \vskip\belowcaptionskip}
\makeatother

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение05.06.2011, 00:46 


05/06/11
2
Ed_Em
уважаемый! Ваш совет очень сильно мне помог оцентровать длинные подписи, НО моя логика и слабое знание теха убили уже не один на:

как сделать, чтобы в caption был 12 шрифт, и при этом работала оцентровка.

Вопрос номер 2:
как сделать подпись справа от рисунка, или как повернуть рисунок и подпись на 90 градусов, чтобы читалась как альбомное (очень большой рисунок надо разместить как на альбомном расположение, да ещё и подпись по стандартам туда же надо.)

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

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение06.06.2011, 13:58 


04/02/08
325
Буково
1. где-нибудь внутри команды, но перед выводимым текстом (например, сразу после \begin{center}) добавить \small (либо команду явной настройки размера шрифта, если вас \small не устроит)

2. Можно рисунок сделать плавающим (floatingfigure), можно вставить рисунок в один столбец таблицы, а подпись в другой, можно использовать \hbox'ы или \parbox'ы.
А для поворота используйте пакет portland, в этом случае страницу с альбомной ориентацией надо будет оформить с окружением landscape.

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение06.06.2011, 17:28 


05/06/11
2
Ed_Em
Спасибо, Вам! Дело в том, что если в caption использовать какую либо командку, то автоматически игнорировалась центровка. Я таки нашла какой пакет мой миктех воспринимает и решила проблему следующим образом:

в преамбуле:
\usepackage{caption3}
\captionsetup{font=large,labelfont=large,textfont=large,justification=centering}
\makeatletter
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\hbox to\textwidth{\hfill\parbox{0.8\textwidth}{\begin{center}#1: #2\end{center}}\hfill}
\vskip\belowcaptionskip}

получилось что в подписи шрифт 12, по центру и можно в несколько строк.

2. Мне необходимо повернуть только рисунок вместе с подписью. Дипломрук сказал, что ему нужно чтобы ориентация у странице сохранилась книжная (номер страницы по узкому краю). пойду читать про portland

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение27.06.2012, 10:42 


23/06/12
1
Спасибо за помощь, потому что с меня потребовали поставить подпись в виде столбца справа от номера рисунка. На показанной здесь основе я сделал следующий вариант

\makeatletter
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\hbox to\textwidth{\parbox[b]{0.1\textwidth}{#1.}\hfill\parbox[t]{0.88\textwidth}{#2}}
\vskip\belowcaptionskip}
\makeatother

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение04.09.2014, 13:33 


04/09/14
8
Добрый день! А можно спросить, команды, чтобы не писать каждый раз размер \includegraphics[width=0.8\textwidth]{img1} нет?

 Профиль  
                  
 
 Re: подписи к рисункам
Сообщение04.09.2014, 20:07 


18/06/14
33
Есть.
Используется синтаксис LaTeX
\newcommand{\includegraphicsw}[1]{\includegraphics[width=0.8\textwidth]{#1}}

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group