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, Супермодераторы



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

Сейчас этот форум просматривают: Lenchik


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

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