Когда `\\` не начинает новую строку в `\caption`?

Когда `\\` не начинает новую строку в `\caption`?

Используя команду вПочему параметр удваивается при использовании в заголовке?, в большинстве случаев это работает, но в некоторых случаях (например, в 1 из 20) \\не начинает новую строку.

Например, используя

\begin{table}
\centering%
\begin{tabular}{llllll}
\hline
\textbf{Bezeichnung} & \textbf{x} & \textbf{y} & \textbf{z} &
$\mathbf{u'_N}$ & $\mathbf{v'_N}$ \\
\hline
... & ... & ... & ... & ... & ...
%...
\hline
\end{tabular}
\caption[Koordinaten ausgewählter Weißpunkte]%
{\label{\Lt{Weisspunkte}}Koordinaten ausgewählter Weißpunkte%
\FS[Quelle]{\cite[S.~279]{poynton_digital_2012}\index{Illuminant}}}
\end{table}

в таблице не начинается новая строка перед Quelle, как здесь (см. желтую линию; остальная часть страницы пикселизирована, чтобы подчеркнуть важные части и улучшить сжатие изображения): Внешний вид на странице-образце

Или показано подробно:

Подробно: не вставлен перенос строки

Обратите внимание, что эта же команда вставляет перенос строки перед "Bildquelle:" на рисунке над таблицей. Я не смог найти ссылку на похожую проблему; может быть, LaTeX пытался избежать переноса строки, если вертикальное пространство на странице ограничено?

Дополнения

Для тех, кто не смог найти \\, вот он (ответ из источника):

\newcommand{\FS}[2][Bildquelle]{%
  \protect\ifthenelse{\equal{#1}{}}%
    {\protect\\{\protect\scriptsize{}#2}}
    {\protect\\{\protect\scriptsize{}#1: #2}}}

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

\caption[Koordinaten ausgewählter Weißpunkte]%
{\label{\Lt{Weisspunkte}}Lorem ipsum Koordinaten ausgewählter Weißpunkte%
\FS[Quelle]{\cite[S.~279]{poynton_digital_2012}\index{Illuminant}}}

затем таблица перешла на следующую страницу, и был вставлен перенос строки:

Правильная подпись на "Lorem ipsum"

МВЭ

Наконец мне удалось создать MWE (pdflatex, на самом деле это оказалось проще, чем ожидалось):

\documentclass[a4paper,twoside]{report}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{ifthen}
\usepackage[pdftex,colorlinks,hypertexnames=false]{hyperref}
\usepackage{makeidx}
\usepackage{showidx}
\newcommand{\FS}[2][Bildquelle]{%
\protect\ifthenelse{\equal{#1}{}}{%
\protect\\*{\protect\scriptsize{}#2}}{%
\protect\\*{\protect\scriptsize{}#1: #2}}}
\begin{document}
%
\begin{table}
\centering%
\begin{tabular}{llllll}
\hline
\textbf{Bezeichnung} & \textbf{x} & \textbf{y} & \textbf{z} &
$\mathbf{u'_N}$ & $\mathbf{v'_N}$ \\
\hline
A & B & C & D & E & F \\
A & B & C & D & E & F \\
A & B & C & D & E & F \\
A & B & C & D & E & F \\
\hline
\end{tabular}
\caption[Koordinaten ausgewählter Weißpunkte]%
{\label{Weisspunkte}Koordinaten ausgewählter Weißpunkte%
\FS[Quelle]{[Poy12, S.~279]\index{Illuminant}}}
\end{table}
%
\begin{table}
\centering%
\begin{tabular}{llllll}
\hline
\textbf{Bezeichnung} & \textbf{x} & \textbf{y} & \textbf{z} &
$\mathbf{u'_N}$ & $\mathbf{v'_N}$ \\
\hline
A & B & C & D & E & F \\
\hline
\end{tabular}
\caption[Koordinaten ausgewählter Weißpunkte]%
{\label{Weisspunkte2}Koordinaten ausgewählter Weißpunkte%
\FS[Quelle]{[Poy12, S.~279]\index{Illuminant}}}
\end{table}
\end{document}

Выглядит как: Часть продукции МВЭ

Решение(https://tex.stackexchange.com/a/518731/182650)

После добавления

\usepackage[font=small,labelfont={sf,bf},position=bottom,singlelinecheck=false]%
{caption}

Результат MWE выглядит следующим образом, и меня это устраивает. введите описание изображения здесь

решение1

введите описание изображения здесь

Вы можете упростить пример:

\documentclass[a4paper,twoside]{report}

\begin{document}
\begin{table}
\caption[]{aaaaaaaaaaa aaaaaa
ccccccccccccccc bbbbbbbbbbbbbbb \\ 
dddddddddddddd}
\end{table}
%
\begin{table}

\caption[]{aaaaa\\bbb}
\end{table}
\end{document}

Большинство классов устанавливают подписи в двух стилях, во-первых, по сути в на \mboxодной строке, которая центрируется, если она помещается в текстовое поле (и \\ничего не делает в mbox). Если это поле слишком широкое, чтобы поместиться в строке, оно отбрасывается, и подпись i переустанавливается в \parbox, Если используется второй формат, \\то будет работать.

В captionпакете есть возможность пропустить однострочный тест, если это то, что вам нужно.

Связанный контент