Sie sind hier

scrlayer-notecolumn: QR-Codes in Fußnote

Hallo,

ich experimentiere gerade mit dem experimentellen Paket scrlayer-notecolumn. -- Das finde ich schon sehr schön! So funktionieren auch Marginalien zu Fußnoten und Minipages. Super!

Bei dem Text, den ich gerade schreibe, kommen relativ oft QR-Codes in die Marginalie, teils auch neben Fußnoten. Wenn der QR-Code fast ganz unten auf einer Seite stehen soll, rutscht er auf die nächste Seite. -- Ich weiß vom scrguide, dass dieses Verhalten gewollt ist und gerade zur Funktionsweise von scrlayer-notecolumn gehört. Aber natürlich soll der QR-Code unten auf der Seite stehen. Wie bekomme ich das hin?

Ich habe es mit ein Macro versucht, mit dem die ganze Notiz mit ihrem -- ich nenne es mal -- Anker angehoben wird. Siehe \myqr. Dort kann man mit dem obtionalen Positionsparameter für eine Anhebenung sorgen. Allerdings hat das den nicht gewollten Effekt, dass die Textkolumne vertikal ein Loch bekommt.

Ich habe auch das Anheben in der marginpar-Kolumne selbst versucht, mit \raisebox und mit \vspace* und negativer Länge. Aber in der dieser Kolumne bekomme ich nichts vertikal verschoben. Wie würde das gehen?

Hier ein Minimalbeispiel:

\documentclass{scrbook}
 
\usepackage{scrlayer-scrpage}
\usepackage{scrlayer-notecolumn}
 
%\usepackage{hyperref}
\usepackage{qrcode}
 
\usepackage{blindtext}
 
\usepackage{etoolbox}
 
\makeatletter
\newcommand*{\myqr}[2][t]{%
  \def\my@qrcode{\qrcode{#2}}%
  %% Bbox des QR-Codes ausmessen
  \setbox\@tempboxa\vbox{\my@qrcode}%
  %% Daraus Anhebung für Positionsparameter b,c,t errechnen
  \ifstrequal{#1}{b}{%
    \setlength{\@tempdima}{\ht\@tempboxa}}{%
    \ifstrequal{#1}{c}{%
      \setlength{\@tempdima}{.5\ht\@tempboxa}}{%
      \setlength{\@tempdima}{0pt}}}%
  \raisebox{\@tempdima}{\makenote*[marginpar]{\my@qrcode}}%
  %\slnc@makenote[marginpar]{\raisebox{\@tempdima}{\my@qrcode}}%
  }
\makeatother %
 
\begin{document}
 
Hallo \myqr{http://ctan.org} %
\blindtext%
\footnote{\makenote*{Notiz} %
  \makenote*{\qrcode{http://ctan.org}} %
  \blindtext[2] %
  \makenote*{\qrcode{http://ctan.org}} %
  Dieser QR-Code rutscht auf die nächste Seite.}
 
\newpage
 
Hallo \myqr{http://ctan.org} %
\blindtext%
\footnote{\makenote*{Notiz} %
  \makenote*{\qrcode{http://ctan.org}} %
  \blindtext[2] %
  \myqr[b]{http://ctan.org}
  Dieser QR-Code erscheint zwar neben der Fußnote, aber in der Fußnote
  klafft ein Loch!}
 
\blindtext[10]
 
\end{document}

Viele Grüße
Christian

Versionen:
texlive 2019
KOMA-Script: v3.26b

[Edit:] Formatierung des Codes und der Paketnamen korrigiert.

Die Anweisung \raisebox hat noch zwei optionale Argumente, mit denen die Höhe und Tiefe der Box unabhängig vom Inhalt festgelegt werden kann. Insbesondere kann man damit Höhe und Tiefe der Box verstecken, in dem man für die entsprechenden Argumente 0pt angibt:

\raisebox{<vertikale verschiebung>}[0pt][0pt]{<boxinhalt>}

Die beiden optionalen Argumente kannst Du benutzen, um den "Anker" der Randnotiz im Text nach oben zu schieben, ohne dabei in den Textbereich einen vertikalen Abstand einzufügen. Abhängig davon, was es sonst noch an Notizen im Rand gibt, kann der QR-Code aber trotzdem auf die nächste Seite wandern.

Analog ließe sich der QR-Code zwar auch im Rand selbst nach oben schieben, allerdings besteht dann die Gefahr, dass er ohne Warnung andere Notizen im Rand überlappt. Das wäre also keine gute Idee.

Danke, so das klappt sehr gut.

Dass der QR-Code trotzdem nach unten wandern kann, ist mir schon klar. So gedrängt geht es in meiner Marginalienspalte aber nicht oder nur selten zu.

Das Argument gegen eine Verschiebung im Rand selbst ist schlagend. Also bleibe ich beim Ansatz, den "Anker" nach oben zu verschieben.

Viele Grüße
Christian

Comments for "scrlayer-notecolumn: QR-Codes in Fußnote" abonnieren