Beschriftung für Randeinträge

Beschriftung für Randeinträge

Das floatrowPaket ermöglicht es, Randbeschriftungen für Abbildungen und Tabellen einzufügen, aber es scheint, als ob die Möglichkeit fehlt, dasselbe für die lstlistingUmgebung des listingsPakets zu tun.

Eine Problemumgehung besteht darin, dies in eine Abbildung einzufügen lstlisting(siehe Beispiel). Dadurch können wir jedoch den Seitenumbruch für lange Codeauflistungen nicht beibehalten. Gibt es eine Möglichkeit, lstlistingBildunterschriften in den Rand einzufügen? Ich habe im floatrowPaket nachgesehen, ob ich es erweitern kann, aber ich weiß nicht, wie.

\documentclass{memoir}
\usepackage{listings}
\usepackage{floatrow}
\floatsetup[figure]{margins=hangright,capposition=beside,capbesideposition={top,left},floatwidth=\textwidth}

\begin{document}
\begin{figure}
  \begin{lstlisting}

    This is a test
  \end{lstlisting}
  \caption{This is a test.}
\end{figure}
\end{document}

Das captionPaket bietet eine Möglichkeit, Fig X:den Rand einzufügen (siehe unten), aber das Einfügen des dritten Arguments innerhalb llapscheint nicht zu funktionieren.

\DeclareCaptionFormat{llap}{\llap{#1#2}#3\par}
\captionsetup{lstlisting}{format=llap,labelsep=quad,singlelinecheck=no}

Antwort1

memoirund floatrowkooperieren nicht gut. Wenn Sie seitliche Beschriftungen für Tabelle und Abbildung wünschen, können Sie memoirden \sidecapBefehl verwenden (siehe Abschnitt10.10 SEITLICHE UNTERTITELdes Handbuchs). Bei mit erstellten Listings lstlistingmuss man etwas mehr Arbeit investieren.

Der folgende (verbesserungswürdige) Code zeigt einen Ansatz; die Überschrift wird in einer Box mit der Breite gespeichert \sidecapwidthund dann mit in den Rand gesetzt \sidepar:

\documentclass{memoir}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{marginnote}
\usepackage{lipsum}

\newsavebox\mycap
\newlength\mycapHt

\setlength\sidecapwidth{77pt}

\DeclareCaptionFormat{llap}{%
  \begin{lrbox}{\mycap}
  \begin{minipage}{\sidecapwidth}
  \raggedright#1:#2#3
  \end{minipage}%
  \end{lrbox}%
  \settoheight\mycapHt{\usebox\mycap}%
  \addtolength\mycapHt{.85\baselineskip}%
  \setlength\sideparvshift{\mycapHt}%
  \sidepar{\usebox\mycap}}
\captionsetup[lstlisting]{format=llap,labelsep=space,singlelinecheck=no}

\begin{document}

\begin{figure}
\begin{sidecaption}{An illustration}[fig:ill]
\centering
\includegraphics[height=4cm]{example-image-a}
\end{sidecaption}
\end{figure}
\lipsum[4]
\begin{lstlisting}[caption={test caption for a listing}]
This is a test
This is a test
This is a test
This is a test
This is a test
\end{lstlisting}
\lipsum[4]
\begin{lstlisting}[caption={test caption for a listing that will span several lines}]
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
\end{lstlisting}
\lipsum[4]

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen