Wie zitiere ich einen Zeilenbereich?

Wie zitiere ich einen Zeilenbereich?

Ich möchte einen kurzen Textauszug angeben können, der als Zeilenbereich im Ausgabe-PDF zitiert werden kann, idealerweise mit dieser Art von Syntax:

\documentclass{memoir}
\usepackage{lineno}

\begin{document}
    \runninglinenumbers*
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam lacinia posuere
    magna ut imperdiet. \labellines{nunc-pellentesque}{Nunc pellentesque} velit quis
    leo interdum ullamcorper. Ut fringilla sapien ut sem viverra, et rhoncus enim
    lobortis. Morbi diam eros, tristique nec feugiat eu, consequat ac dui. Duis
    molestie, sem id efficitur dignissim, velit metus auctor orci, sit amet mattis
    metus purus in nibh. Etiam mattis, magna ut imperdiet molestie, ex leo viverra
    velit, ac posuere augue est maximus risus. Etiam ac pellentesque nulla. Morbi
    quis pharetra purus. Proin porta, turpis et scelerisque hendrerit, elit eros
    malesuada mi, a imperdiet massa est id nibh. Class aptent taciti sociosqu ad
    litora torquent per conubia nostra, per inceptos himenaeos.
    \labellines{nunc-pharetra}{Nunc pharetra vehicula metus, eu tincidunt arcu
        aliquet et. Aenean ac odio nunc. Etiam ultricies purus non dolor tincidunt, et
        ultricies turpis consequat. Integer vitae ullamcorper eros. Nullam pulvinar
        dictum nunc. Morbi ac justo mi.}

    % \reflines{nunc-pellentesque} should print "line 2"
    ``Nunc pellentesque\ldots'' was on \reflines{nunc-pellentesque}.

    % \reflines{nunc-pharetra} should print "lines 10--13"
    ``Nunc pharetra\ldots'' was on \reflines{nunc-pharetra}.
\end{document}

Der Text allein sieht so aus:

PDF-Ausgabe ohne diese Befehle

Antwort1

Eine einfache Lösung, aber möglicherweise nicht ausfallsicher:

  • Platzieren Sie ein \linelabel{start:#1}am Anfang der beigefügten Nummer 2

  • Platzieren Sie ein \linelabel{end:#1}am Ende der beigefügten Nummer 2

Verwenden Sie \getrefnumberfrom refcountpackage und extrahieren Sie die Zeilennummern. Wäre im Prinzip auch \linerefmöglich, ergibt aber keine erweiterbaren Zahlen, sodass der Vergleich fehlschlägt.

Ich habe keinen Code hinzugefügt, um zu prüfen, ob das Label überhaupt existiert!


\documentclass{memoir}


\usepackage{refcount}
\usepackage{lineno}

\newcommand{\labellines}[2]{%
  \linelabel{start:#1}%
  #2%
  \linelabel{end:#1}%
}

\makeatletter
\newcommand{\reflines}[1]{%
  \begingroup
  \edef\temp@a{\getrefnumber{start:#1}}%
  \edef\temp@b{\getrefnumber{end:#1}}%
  \ifnum\temp@a = \temp@b
  line \temp@a%
  \else
  lines \temp@a\ and \temp@b%
  \fi
  \endgroup
}
\makeatother

\begin{document}
    \runninglinenumbers*
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam lacinia posuere
    magna ut imperdiet. \labellines{nunc-pellentesque}{Nunc pellentesque} velit quis
    leo interdum ullamcorper. Ut fringilla sapien ut sem viverra, et rhoncus enim
    lobortis. Morbi diam eros, tristique nec feugiat eu, consequat ac dui. Duis
    molestie, sem id efficitur dignissim, velit metus auctor orci, sit amet mattis
    metus purus in nibh. Etiam mattis, magna ut imperdiet molestie, ex leo viverra
    velit, ac posuere augue est maximus risus. Etiam ac pellentesque nulla. Morbi
    quis pharetra purus. Proin porta, turpis et scelerisque hendrerit, elit eros
    malesuada mi, a imperdiet massa est id nibh. Class aptent taciti sociosqu ad
    litora torquent per conubia nostra, per inceptos himenaeos.
    \labellines{nunc-pharetra}{Nunc pharetra vehicula metus, eu tincidunt arcu
        aliquet et. Aenean ac odio nunc. Etiam ultricies purus non dolor tincidunt, et
        ultricies turpis consequat. Integer vitae ullamcorper eros. Nullam pulvinar
        dictum nunc. Morbi ac justo mi.}

    % \reflines{nunc-pellentesque} should print "line 2"
    ``Nunc pellentesque\ldots'' was on \reflines{nunc-pellentesque}.

    % \reflines{nunc-pharetra} should print "lines 10--13"
    ``Nunc pharetra\ldots'' was on \reflines{nunc-pharetra}.
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen