Frage

Ich habe ein Makro, die Side-by-Side-Zahlen zu tun, unten. Es verwendet subfloats, und so ist es in einer Figur geht.

\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}
}

Leider verwendet dieses die Abbildung Zähler, nicht die Anzeigen diejenigen. Es zeigt sich auch in der falschen Inhaltsverzeichnis auf und verwendet das Wort „Bild“ anstelle von „Anzeigen“ in der Beschriftung, Verweise darauf, usw. Gibt es eine Möglichkeit, diese zu korrigieren?

Ich möchte einen einfachen Weg bevorzugen, wie das Hinzufügen des Wortes „Listing“ irgendwo ...

War es hilfreich?

Lösung

Statt den eingebauten Schwimm von lstlistings verwenden, wickeln Sie sie in einem benutzerdefinierten float:

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

Verwenden Sie dann den gleichen Schwimmer (mylisting) für die subfloat Nutzung:

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

Dies muss alle in der Präambel aufgebaut werden:

\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}

Andere Tipps

Sie können einen Blick auf die subfloat Dokumentation haben wollen. Ich bin sicher, dass es ein Makro-Aufruf ist die subfloat Zahl in der „Figur“ Umwelt macht. Sie könnten die „Figur“ Umwelt Zähler auf „Listings“ versuchen und neu zu definieren -., Ob das einen Sinn macht

OK, das ist die falsche Antwort, aber ich habe fast dort so. Er scheiterte nur Beschriftungen auf der rechten Seite \listof hinzuzufügen.

Fast dort. Es könnte wahrscheinlich besser, aber das fast Arbeiten durchgeführt werden. Alles, was übrig bleibt ist die Beschriftung erscheinen zu lassen, in der Lol-Datei, nicht die .loc Datei. Ich werde eine Frage danach fragen, dann diese Antwort beheben.

Im Grunde ist dies nur staut sich der „Figur“ Zähler und Kopien über die „Inserate“ Zähler. Nach der Figur, bringt es sie zurück.

% 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}
}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top