Domanda

Ho una macro che fare figure side-by-side, al di sotto. Esso utilizza subfloats, e così si va in una figura.

\newcommand{\listbylist}[6][showlines=true]{
   \begin{figure}
      \subfloat[ ]{
        \lstinputlisting[showlines=true,#1]{#2}                                                  
     \label{#4:A}
  }
  \hfill{}
  \subfloat[ ]{                                                                               
     % by setting the frame to leftline, we avoid a box into oblivion                         
     % turn off numbers                                                                       
     \lstinputlisting[showlines=true,frame=leftline,#1,numbers=none]{#3}                      
     \label{#4:B}                                                                             
  }                                                                                           
  \hfill{}
   \caption[#5]{#6}
       \label{#4}                                                                                         
   \end{figure}
}

Purtroppo, questo utilizza i contatori figura, non quelli Annunci. Essa mostra anche nella tabella sbagliata di contenuti, e usa la parola "Figura" invece di "annunci" nella didascalia, riferimenti ad esso, ecc C'è un modo per rimediare a questa?

Io preferirei un modo semplice, come l'aggiunta la parola "Annuncio" da qualche parte ...

È stato utile?

Soluzione

Invece di usare il built-in float di lstlistings, avvolgerli in un galleggiante personalizzato:

\begin{mylisting}
\begin{lstlisting}
int x = 1;
\end{lstlisting}
\end{mylisting}

Quindi utilizzare lo stesso galleggiante (mylisting) per l'utilizzo subfloat:

\newcommand{\listbylist}[6][showlines=true]{
  \begin{mylisting}
    \subfloat[ ]{
      ...
    }
    \hfill{}
    \subfloat[ ]{
      ...
    }
    \hfill{}
    \caption[#5]{#6}
    \label{#4}
  \end{mylisting}
}

Questo deve tutto essere istituito nel preambolo:

\newfloat{mylisting}{tbphH}{lopbl}[chapter]
\floatname{mylisting}{Listing}
\newsubfloat{mylisting}
\newcommand{\listofmylistings}{\listof{mylisting}{List of Listings}}
% if you use the hyperref package
\providecommand*\theHmylisting{\themylisting}

Altri suggerimenti

Si potrebbe desiderare di avere uno sguardo alla documentazione di subfloat. Sono sicuro che ci sia una chiamata di macro che rende conteggio subfloat nell'ambiente "figura". Si potrebbe provare e ridefinire l'ambiente "figura" contatore "elenchi" -. Se questo ha un senso a tutti

OK, questa è la risposta sbagliata, ma ho fatto quasi arrivare in questo modo. Non è riuscito solo per aggiungere didascalie a \listof destra.

Ci siamo quasi. esso probabilmente potrebbe essere fatto meglio, ma questo quasi funziona. Tutto ciò che rimane è quello di rendere la didascalia appare nel file .lol, non il file .loc. Chiedo farò una domanda a tale proposito, quindi fissare questa risposta.

In sostanza, questo non si capiscono solo il contatore "figura", e le copie over the counter "elenchi". Dopo la figura, li mette di nuovo.

% Need a counter to save the value to
\newcounter{pbsavefigurecounter}

\newcommand{\listbylist}[6][showlines=true]{
{% scope

   % Change ``Figure'' to ``Listing''
   \renewcommand{\figurename}{Listing}

   % save the figure counter
   \setcounter{pbsavefigurecounter}{\value{figure}}

   % copy the listings counter to the figure counter
   \setcounter{figure}{\value{lstlisting}}


   \begin{figure}
  \subfloat[ ]{
     \lstinputlisting[nolol,showlines=true,#1]{#2}
     \label{#4:A}
  }
  \hfill{}
  \subfloat[ ]{
     % by setting the frame to leftline, we avoid a box into oblivion
     % turn off numbers
     \lstinputlisting[nolol,showlines=true,frame=leftline,#1,numbers=none]{#3}
     \label{#4:B}
  }
  \hfill{}

%  \float@caption{lol}[#5]{#6}
   \label{#4}
   \end{figure}

   % Update the listings counter
   \setcounter{lstlisting}{\value{figure}}

   % Restore the figure counter
   \setcounter{figure}{\value{pbsavefigurecounter}}

   % Change ``Listing'' back to ``Figure''
   \renewcommand{\figurename}{Figure}
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top