在列表中悬挂标题

在列表中悬挂标题

如果我使用以下命令,\usepackage[skip=20pt,hang]{caption}当标题很长时,它会在图形和表格中挂起,但是,如果标题是 lstlisting 环境,则不会。此外,我没有在列表包. 怎么解决?

图挂:

在此处输入图片描述

Lstlisting 没有挂起:

在此处输入图片描述

最小工作示例与图像非常相似:

\documentclass[12pt,a4paper,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage{times}
\renewcommand{\rmdefault}{phv} % Arial
\renewcommand{\sfdefault}{phv} % Arial
\usepackage[T1]{fontenc}

\usepackage[spanish,es-noshorthands]{babel}

\usepackage[top=2.5cm, bottom=2.5cm, inner=2.5cm, outer=3.5cm]{geometry}
\usepackage[pdftex,demo]{graphicx}
\usepackage[skip=20pt,hang]{caption}
\usepackage{subcaption}
\usepackage[usenames,dvipsnames]{xcolor} 

\definecolor{ColorPrincipal}{cmyk}{0,0.89,0.94,0.28} %este es el color BrickRed
\definecolor{ColorSecundario}{cmyk}{0,0.51,1,0} %este es el color BurntOrange
\definecolor{ColorTerciario}{cmyk}{0.40,0.80,0.20,0} %este es el color DarkOrchid
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\usepackage{listings}
\definecolor{ColorPrincipal}{RGB}{0,0,0}
\lstset{ %
    language=bash,                      % the language of the code
    %basicstyle=\footnotesize,      % the size of the fonts that are used for the code
    basicstyle=\normalsize\ttfamily,
    numbers=left,               % where to put the line-numbers
    numberstyle=\footnotesize,      % the size of the fonts that are used for the line-numbers
    stepnumber=1,               % the step between two line-numbers. If it's 1, each line will be numbered
    numbersep=1em,              % how far the line-numbers are from the code
    aboveskip=1em,              % espacio por encima del listing (1 línea)
    belowskip=0.2em,            % espacio por debajo del listing (1 línea según mis mediciones con la regla tengo que poner -1.8) ACTUALIZACIÓN con el marco del listing: sin espacio= -0.8em con una línea de espacio -0.8+1=0.2em
    %belowcaptionskip=0.5em,        % Esto hay que ponerlo individualmente a los captions que ocupen dos líneas
    backgroundcolor=\color{white},  % choose the background color. You must add \usepackage{color}
    showspaces=false,                   % show spaces adding particular underscores
    showstringspaces=false,         % underline spaces within strings
    showtabs=false,                     % show tabs within strings adding particular underscores
    frame=single,                       % adds a frame around the code
    frameround=fttf,            % t hace la esquina redondeada y f que sea en punta
    tabsize=2,                          % sets default tabsize to 2 spaces
    captionpos=t,                       % sets the caption-position to top
    breaklines=true,                    % sets automatic line breaking
    breakatwhitespace=true,             % sets if automatic breaks should only happen at whitespace
    title=\lstname,                   % show the filename of files included with \lstinputlisting; also try caption instead of title
    numberstyle=\scriptsize\color{gray},    % line number style
    keywordstyle=\color{blue},      % keyword style
    commentstyle=\color{dkgreen},       % comment style
    stringstyle=\color{mauve},      % string literal style
    escapeinside={\%*}{*)},         % if you want to add a comment within your code
    %morekeywords={*,...},              % if you want to add more keywords to the set
    %keywordstyle=\color{blue},
    columns=flexible,               %utilizar la opción flexible ya que el resto meten espacios entre letras para que ocupen todo el espacio de la caja (pero al copiar y pegar código nos lo ha estropeado)
    alsoletter={-,/,.},                 % gracias a esto podremos enfatizar o hacer keyword palabras como "apt-get"
    %emph={sudo, apt-get},          %palabras especiales que se marcarán
    classoffset=0,
    emph={sudo,},
    emphstyle=\color{red},
    classoffset=1,
    %emph={adb, add-apt-repository, am, android, apt-get, brctl, cat, chmod, dpkg, echo, egrep, /etc/init.d/networking, export, grep, ifconfig, ifdown, ifup, ip, iwconfig, iwlist, java, killall, ln, less, ls, mkdir, modprobe, mv, netcfg, ping, route, sensors, sensors-detect, service, sort, tail, tee, touch, uname, vim, virsh, virt-clone, virt-install, virt-viewer, vncviewer, wget, wpa\_passphrase, wpa\_supplicant, xm}, %algunos de estos comandos están definidos en keywords pero así me los pone a todos del mismo color
    emphstyle=\color{BurntOrange},
    classoffset=0,
    escapechar=!,
    xleftmargin=1.41mm,
    xrightmargin=-0.71mm,
    rulecolor=\color{black}, %corrige el error de bordes que cambian de color cuando se tiene que hacer un salto de una línea con un color distinto del negro http://tex.stackexchange.com/questions/80556/lstlisting-border-bug-when-breaking-lines
    literate={ö}{{\"o}}1
         {ä}{{\"a}}1
         {ü}{{\"u}}1
         {á}{{\'{a}}}1
         {é}{{\'{e}}}1
         {í}{{\'{i}}}1
         {ó}{{\'{o}}}1
         {ú}{{\'{u}}}1
         {ñ}{{\~{n}}}1
         {Á}{{\'{A}}}1
         {É}{{\'{E}}}1
         {Í}{{\'{I}}}1
         {Ó}{{\'{O}}}1
         {Ú}{{\'{U}}}1
         {Ñ}{{\~{N}}}1
         {¿}{{?`}}1
}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}\begin{minipage}{0.95\linewidth}#1#2#3\end{minipage}}}} %el minipage me asegura que si el texto de un caption ocupa más de una línea las siguientes líneas quedarán alineadas con respecto a la primera el hspace de 15pt
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}
\addto\captionsspanish{\renewcommand*\lstlistingname{C\'odigo}}
\addto\captionsspanish{\renewcommand*\lstlistlistingname{\'Indice de c\'odigo}}

\usepackage{chngcntr} % Sirve para numerar figuras, tablas, etc según numSección.númElemento http://www.physicsforums.com/showthread.php?t=290236
\counterwithin{figure}{section}
\AtBeginDocument{\counterwithin{lstlisting}{section}} 

\renewcommand{\captionfont}{\color{ColorSecundario}}
\renewcommand{\captionlabelfont}{\bf}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}

\begin{document}

\section{Sección 1}
\section{Sección 2}
\section{Sección 3}
\section{Sección 4}

Here it hangs :-)

\begin{figure}[h!]
    \centering
    \includegraphics[width=0.25\textwidth]{clipart/hombreNegociosMovil.jpeg}
    \includegraphics[width=0.5\textwidth]{clipart/paradaAutobusAlReves.jpg}
    \caption{Bytewalla en el poblado: tranferencia de información del móvil a estafeta}
\end{figure}

But not here :-(

\begin{lstlisting}[belowcaptionskip=0.5em,language=java,caption=Fragmento concerniente a los métodos constructores de la clase Fichero.java]
/* Constructor de un objeto Fichero a partir de un fichero en disco
* Es por ello que se han de generar todos los datos pertenecientes a este fichero
*/
private Fichero(File fichero) throws IOException {
//Se ha omitido el código
}

/*
* Por el contrario podemos querer generar un fichero "virtual", representación de un fichero que posee otro nodo
* Para ello se nos deberá proporcionar la información de este fichero
* La variable nuevo indica si este es un fichero del que no se tenía constancia o si este es un fichero que se va a recrear a partir de trozos, que no está completo
* En el caso de ser un fichero nuevo la información de si se posee este fichero o no se rellenará a NO_EN_MEMORIA ya que sólo se nos enviará el nombre, hashes y tamaños
* */
public Fichero(String nombre, Object bloques[][], Map<String, Long> poseedoresDelFichero, boolean nuevo)
{
//Se ha omitido el código
}
\end{lstlisting}

\end{document}

答案1

最好使用\DeclareCaptionBox而不是\DeclareCaptionFormat在自定义框中排版标题,因为这样可以保持format设置(在本例中为:format=hang)不变。

不幸的是\DeclareCaptionBox,由于我目前还没有时间将文档更新到软件包的 3.3 版,因此尚未记录caption。顺便说一句:\DeclareCaptionBox自 3.3 版起提供,因此您可能需要更新caption软件包或 TeX 发行版才能使用此功能。

此外,您不需要使用\hspace{15pt}技巧来获得 15pt 的边距,只需使用选项margin=15pt即可。在收集您的caption选项并进行建议的更改时,我们总共有:

% Settings for ordinary captions
\captionsetup{skip=20pt,format=hang,font={color=ColorSecundario},labelfont=bf}

% Special (additonal) settings for lstlisting captions
\DeclareCaptionBox{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{#2}}}
\captionsetup[lstlisting]{box=listing,font={color=white,bf,footnotesize},singlelinecheck=false,margin=15pt}

在此处输入图片描述

完整示例:

\documentclass[12pt,a4paper,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage{times}
\renewcommand{\rmdefault}{phv} % Arial
\renewcommand{\sfdefault}{phv} % Arial
\usepackage[T1]{fontenc}

\usepackage[spanish,es-noshorthands]{babel}

\usepackage[top=2.5cm, bottom=2.5cm, inner=2.5cm, outer=3.5cm]{geometry}
\usepackage[pdftex,demo]{graphicx}
\usepackage{caption,subcaption}
\usepackage[usenames,dvipsnames]{xcolor} 

\definecolor{ColorPrincipal}{cmyk}{0,0.89,0.94,0.28} %este es el color BrickRed
\definecolor{ColorSecundario}{cmyk}{0,0.51,1,0} %este es el color BurntOrange
\definecolor{ColorTerciario}{cmyk}{0.40,0.80,0.20,0} %este es el color DarkOrchid
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\usepackage{listings}
\definecolor{ColorPrincipal}{RGB}{0,0,0}
\lstset{ %
    language=bash,                      % the language of the code
    %basicstyle=\footnotesize,      % the size of the fonts that are used for the code
    basicstyle=\normalsize\ttfamily,
    numbers=left,               % where to put the line-numbers
    numberstyle=\footnotesize,      % the size of the fonts that are used for the line-numbers
    stepnumber=1,               % the step between two line-numbers. If it's 1, each line will be numbered
    numbersep=1em,              % how far the line-numbers are from the code
    aboveskip=1em,              % espacio por encima del listing (1 línea)
    belowskip=0.2em,            % espacio por debajo del listing (1 línea según mis mediciones con la regla tengo que poner -1.8) ACTUALIZACIÓN con el marco del listing: sin espacio= -0.8em con una línea de espacio -0.8+1=0.2em
    %belowcaptionskip=0.5em,        % Esto hay que ponerlo individualmente a los captions que ocupen dos líneas
    backgroundcolor=\color{white},  % choose the background color. You must add \usepackage{color}
    showspaces=false,                   % show spaces adding particular underscores
    showstringspaces=false,         % underline spaces within strings
    showtabs=false,                     % show tabs within strings adding particular underscores
    frame=single,                       % adds a frame around the code
    frameround=fttf,            % t hace la esquina redondeada y f que sea en punta
    tabsize=2,                          % sets default tabsize to 2 spaces
    captionpos=t,                       % sets the caption-position to top
    breaklines=true,                    % sets automatic line breaking
    breakatwhitespace=true,             % sets if automatic breaks should only happen at whitespace
    title=\lstname,                   % show the filename of files included with \lstinputlisting; also try caption instead of title
    numberstyle=\scriptsize\color{gray},    % line number style
    keywordstyle=\color{blue},      % keyword style
    commentstyle=\color{dkgreen},       % comment style
    stringstyle=\color{mauve},      % string literal style
    escapeinside={\%*}{*)},         % if you want to add a comment within your code
    %morekeywords={*,...},              % if you want to add more keywords to the set
    %keywordstyle=\color{blue},
    columns=flexible,               %utilizar la opción flexible ya que el resto meten espacios entre letras para que ocupen todo el espacio de la caja (pero al copiar y pegar código nos lo ha estropeado)
    alsoletter={-,/,.},                 % gracias a esto podremos enfatizar o hacer keyword palabras como "apt-get"
    %emph={sudo, apt-get},          %palabras especiales que se marcarán
    classoffset=0,
    emph={sudo,},
    emphstyle=\color{red},
    classoffset=1,
    %emph={adb, add-apt-repository, am, android, apt-get, brctl, cat, chmod, dpkg, echo, egrep, /etc/init.d/networking, export, grep, ifconfig, ifdown, ifup, ip, iwconfig, iwlist, java, killall, ln, less, ls, mkdir, modprobe, mv, netcfg, ping, route, sensors, sensors-detect, service, sort, tail, tee, touch, uname, vim, virsh, virt-clone, virt-install, virt-viewer, vncviewer, wget, wpa\_passphrase, wpa\_supplicant, xm}, %algunos de estos comandos están definidos en keywords pero así me los pone a todos del mismo color
    emphstyle=\color{BurntOrange},
    classoffset=0,
    escapechar=!,
    xleftmargin=1.41mm,
    xrightmargin=-0.71mm,
    rulecolor=\color{black}, %corrige el error de bordes que cambian de color cuando se tiene que hacer un salto de una línea con un color distinto del negro http://tex.stackexchange.com/questions/80556/lstlisting-border-bug-when-breaking-lines
    literate={ö}{{\"o}}1
         {ä}{{\"a}}1
         {ü}{{\"u}}1
         {á}{{\'{a}}}1
         {é}{{\'{e}}}1
         {í}{{\'{i}}}1
         {ó}{{\'{o}}}1
         {ú}{{\'{u}}}1
         {ñ}{{\~{n}}}1
         {Á}{{\'{A}}}1
         {É}{{\'{E}}}1
         {Í}{{\'{I}}}1
         {Ó}{{\'{O}}}1
         {Ú}{{\'{U}}}1
         {Ñ}{{\~{N}}}1
         {¿}{{?`}}1
}
\addto\captionsspanish{\renewcommand*\lstlistingname{C\'odigo}}
\addto\captionsspanish{\renewcommand*\lstlistlistingname{\'Indice de c\'odigo}}

\usepackage{chngcntr} % Sirve para numerar figuras, tablas, etc según numSección.númElemento http://www.physicsforums.com/showthread.php?t=290236
\counterwithin{figure}{section}
\AtBeginDocument{\counterwithin{lstlisting}{section}} 

% Settings for ordinary captions
\captionsetup{skip=20pt,format=hang,font={color=ColorSecundario},labelfont=bf}

% Special (additonal) settings for lstlisting captions
\DeclareCaptionBox{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{#2}}}
\captionsetup[lstlisting]{box=listing,font={color=white,bf,footnotesize},singlelinecheck=false,margin=15pt}

\begin{document}

\section{Sección 1}
\section{Sección 2}
\section{Sección 3}
\section{Sección 4}

Here it hangs :-)

\begin{figure}[h!]
    \centering
    \includegraphics[width=0.25\textwidth]{clipart/hombreNegociosMovil.jpeg}
    \includegraphics[width=0.5\textwidth]{clipart/paradaAutobusAlReves.jpg}
    \caption{Bytewalla en el poblado: tranferencia de información del móvil a estafeta}
\end{figure}

But not here :-(

\begin{lstlisting}[belowcaptionskip=0.5em,language=java,caption=Fragmento concerniente a los métodos constructores de la clase Fichero.java]
/* Constructor de un objeto Fichero a partir de un fichero en disco
* Es por ello que se han de generar todos los datos pertenecientes a este fichero
*/
private Fichero(File fichero) throws IOException {
//Se ha omitido el código
}

/*
* Por el contrario podemos querer generar un fichero "virtual", representación de un fichero que posee otro nodo
* Para ello se nos deberá proporcionar la información de este fichero
* La variable nuevo indica si este es un fichero del que no se tenía constancia o si este es un fichero que se va a recrear a partir de trozos, que no está completo
* En el caso de ser un fichero nuevo la información de si se posee este fichero o no se rellenará a NO_EN_MEMORIA ya que sólo se nos enviará el nombre, hashes y tamaños
* */
public Fichero(String nombre, Object bloques[][], Map poseedoresDelFichero, boolean nuevo)
{
//Se ha omitido parte  del código
}
\end{lstlisting}

\end{document}

答案2

由于您正在使用 自定义列表的标题,因此声明的hang选项不会产生影响。lstlisting\DeclareCaptionFormat{listing}{...}

您可以在格式定义中添加悬挂:在\colorbox为列表标题定义时,我最初将框起来#1#2,测量了宽度并使用宽度作为值来\hangindent排版标题:

\DeclareCaptionFormat{listing}{%
  \makebox[\linewidth][l]{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{%
    \setbox0=\hbox{#1#2}%
    \begin{minipage}{\textwidth}
      \hangindent\wd0\strut#1#2#3\leavevmode
    \end{minipage}}%
  }%
}

完整示例:

\documentclass[12pt,a4paper,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage{times}
\renewcommand{\rmdefault}{phv} % Arial
\renewcommand{\sfdefault}{phv} % Arial
\usepackage[T1]{fontenc}

\usepackage[spanish,es-noshorthands]{babel}
\usepackage[top=2.5cm, bottom=2.5cm, inner=2.5cm, outer=3.5cm]{geometry}
\usepackage[demo]{graphicx}
\usepackage[skip=20pt,hang]{caption}
\usepackage{subcaption}
\usepackage[usenames,dvipsnames]{xcolor} 

\definecolor{ColorPrincipal}{cmyk}{0,0.89,0.94,0.28} %este es el color BrickRed
\definecolor{ColorSecundario}{cmyk}{0,0.51,1,0} %este es el color BurntOrange
\definecolor{ColorTerciario}{cmyk}{0.40,0.80,0.20,0} %este es el color DarkOrchid
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\usepackage{listings}
\definecolor{ColorPrincipal}{RGB}{0,0,0}
\lstset{ %
    language=bash,                      % the language of the code
    %basicstyle=\footnotesize,      % the size of the fonts that are used for the code
    basicstyle=\normalsize\ttfamily,
    numbers=left,               % where to put the line-numbers
    numberstyle=\footnotesize,      % the size of the fonts that are used for the line-numbers
    stepnumber=1,               % the step between two line-numbers. If it's 1, each line will be numbered
    numbersep=1em,              % how far the line-numbers are from the code
    aboveskip=1em,              % espacio por encima del listing (1 línea)
    belowskip=0.2em,            % espacio por debajo del listing (1 línea según mis mediciones con la regla tengo que poner -1.8) ACTUALIZACIÓN con el marco del listing: sin espacio= -0.8em con una línea de espacio -0.8+1=0.2em
    %belowcaptionskip=0.5em,        % Esto hay que ponerlo individualmente a los captions que ocupen dos líneas
    backgroundcolor=\color{white},  % choose the background color. You must add \usepackage{color}
    showspaces=false,                   % show spaces adding particular underscores
    showstringspaces=false,         % underline spaces within strings
    showtabs=false,                     % show tabs within strings adding particular underscores
    frame=single,                       % adds a frame around the code
    frameround=fttf,            % t hace la esquina redondeada y f que sea en punta
    tabsize=2,                          % sets default tabsize to 2 spaces
    captionpos=t,                       % sets the caption-position to top
    breaklines=true,                    % sets automatic line breaking
    breakatwhitespace=true,             % sets if automatic breaks should only happen at whitespace
    title=\lstname,                   % show the filename of files included with \lstinputlisting; also try caption instead of title
    numberstyle=\scriptsize\color{gray},    % line number style
    keywordstyle=\color{blue},      % keyword style
    commentstyle=\color{dkgreen},       % comment style
    stringstyle=\color{mauve},      % string literal style
    escapeinside={\%*}{*)},         % if you want to add a comment within your code
    %morekeywords={*,...},              % if you want to add more keywords to the set
    %keywordstyle=\color{blue},
    columns=flexible,               %utilizar la opción flexible ya que el resto meten espacios entre letras para que ocupen todo el espacio de la caja (pero al copiar y pegar código nos lo ha estropeado)
    alsoletter={-,/,.},                 % gracias a esto podremos enfatizar o hacer keyword palabras como "apt-get"
    %emph={sudo, apt-get},          %palabras especiales que se marcarán
    classoffset=0,
    emph={sudo,},
    emphstyle=\color{red},
    classoffset=1,
    %emph={adb, add-apt-repository, am, android, apt-get, brctl, cat, chmod, dpkg, echo, egrep, /etc/init.d/networking, export, grep, ifconfig, ifdown, ifup, ip, iwconfig, iwlist, java, killall, ln, less, ls, mkdir, modprobe, mv, netcfg, ping, route, sensors, sensors-detect, service, sort, tail, tee, touch, uname, vim, virsh, virt-clone, virt-install, virt-viewer, vncviewer, wget, wpa\_passphrase, wpa\_supplicant, xm}, %algunos de estos comandos están definidos en keywords pero así me los pone a todos del mismo color
    emphstyle=\color{BurntOrange},
    classoffset=0,
    escapechar=!,
    xleftmargin=1.41mm,
    xrightmargin=-0.71mm,
    rulecolor=\color{black}, %corrige el error de bordes que cambian de color cuando se tiene que hacer un salto de una línea con un color distinto del negro http://tex.stackexchange.com/questions/80556/lstlisting-border-bug-when-breaking-lines
    literate={ö}{{\"o}}1
         {ä}{{\"a}}1
         {ü}{{\"u}}1
         {á}{{\'{a}}}1
         {é}{{\'{e}}}1
         {í}{{\'{i}}}1
         {ó}{{\'{o}}}1
         {ú}{{\'{u}}}1
         {ñ}{{\~{n}}}1
         {Á}{{\'{A}}}1
         {É}{{\'{E}}}1
         {Í}{{\'{I}}}1
         {Ó}{{\'{O}}}1
         {Ú}{{\'{U}}}1
         {Ñ}{{\~{N}}}1
         {¿}{{?`}}1
}

\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{%
  \makebox[\linewidth][l]{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{%
    \setbox0=\hbox{#1#2}%
    \begin{minipage}{\textwidth}
      \hangindent\wd0\strut#1#2#3\leavevmode
    \end{minipage}}%
  }%
}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, 
singlelinecheck=false, margin=0pt, font={bf,footnotesize}}
\addto\captionsspanish{\renewcommand*\lstlistingname{C\'odigo}}
\addto\captionsspanish{\renewcommand*\lstlistlistingname{\'Indice de c\'odigo}}

\usepackage{chngcntr} % Sirve para numerar figuras, tablas, etc según numSección.númElemento http://www.physicsforums.com/showthread.php?t=290236
\counterwithin{figure}{section}
\AtBeginDocument{\counterwithin{lstlisting}{section}} 

\renewcommand{\captionfont}{\color{ColorSecundario}}
\renewcommand{\captionlabelfont}{\bfseries}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}

\begin{document}

\section{Sección 1}
\section{Sección 2}
\section{Sección 3}
\section{Sección 4}

\begin{figure}[!ht]
    \centering
    \includegraphics[width=0.25\textwidth]{clipart/hombreNegociosMovil.jpeg}
    \includegraphics[width=0.5\textwidth]{clipart/paradaAutobusAlReves.jpg}
    \caption{Bytewalla en el poblado: tranferencia de información del móvil a estafeta}
\end{figure}

\begin{lstlisting}[caption={Fragmento concerniente a los métodos con algo más de texto constructores de la clase Fichero.java}]
test
test
\end{lstlisting}

\end{document}

在此处输入图片描述

答案3

更新: Axel Sommerfeldt 的回答是正确的,但正如他所说,字幕包尚未更新。事实上,现在可以看到 texlive 有一个 bug这里解决该问题的快速方法是使用以下代码创建并运行 makefile:

all: compile install

download:
    if [ ! -f ./caption/caption.ins ]; then \
        wget http://mirrors.ctan.org/macros/latex/contrib/caption.zip ;\
        unzip caption.zip ;\
    fi

compile: download
    cd caption;\
    latex caption.ins

documentation: compile
    cd caption;\
    latex caption-eng.tex;\
    #latex caption-deu.tex;\
    #latex caption-rus.tex;

install:
    if [ `whoami` != root ]; then \
        echo "This must be run as root" ;\
    else \
        RUTACAPTION=$$(kpsewhich caption.sty|xargs dirname) ;\
        echo "The files in $$RUTACAPTION will be backed up in a folder called caption.old" ;\
        cp -R $$RUTACAPTION caption.old ;\
        cp  ./caption/*.sty $$RUTACAPTION ;\
        sudo texhash ;\
    fi

clean:
    rm caption.zip
    rm -R caption

之后命令\DeclareCaptionBox起作用

相关内容