Autor Thema: Doppel-f als Text ergibt einen seltsamen Effekt im PDF (mit Workaround gelöst)  (Gelesen 3076 mal)

Manuela

  • Member
Hi,

vermutlich betrifft das nur Windows.

Wenn in einem Markup ein Doppel-f oder die Textfolge fl vorkommt, lässt sich dieser Text nicht über die Zwischenablage vom PDF in ein Textverarbeitungsprogramm kopieren.

\version "2.19.42"

\markup { doppel f:ff efel: fl }

Das erzeugt PDF mit Adobe Acrobat Reader geöffnet, Text markiert und in die Zwischenablage kopiert.
Und das kommt im Textbearbeitungsprogramm (OOO Writer) an:

doppel f:.. efel: #

Von anderen PDFs (z.B. der Dokumentation) kann ich Texte mit Doppel-f problemlos kopieren.

Hat jemand eine Idee, woran das liegen könnte bzw. ob es einen Workaround gibt (Escape-Zeichen z.B.)?
« Letzte Änderung: Dienstag, 25. Oktober 2016, 14:52 von Manuela »

fugenkomponist

  • Member
Re: Doppel-f als Text ergibt einen seltsamen Effekt im PDF
« Antwort #1 am: Montag, 24. Oktober 2016, 19:29 »
vermutlich betrifft das nur Windows.
Nein, das ist anscheinend abhängig vom PDF-Viewer; manche kopieren den eingegebenen Text, manche die angezeigten Ligaturen (ich nehme an, daß beide Informationen im PDF vorhanden sind). Bei mir (Linux Mint 17) geht das Kopieren aus evince (mitgelieferter PDF-Viewer) problemlos, acroread (Adobe Acrobat Reader) macht ähnliche Probleme wie bei dir:
doppel f:􀀀 efel: 
Welchen PDF-Viewer verwendest du denn?
Zitat
Von anderen PDFs (z.B. der Dokumentation) kann ich Texte mit Doppel-f problemlos kopieren.
Die Dokumentation ist auch nicht in LilyPond gesetzt, sondern in TeX, vielleicht macht TeX was anders ;)
Edit: Ja, TeX (zumindest pdflatex und lualatex) macht was anders, da gehts auch mit evince und mit acroread auch nicht, aber das Ergebnis ist ein anderes: (pdflatex) bzw. nichts (lualatex).
« Letzte Änderung: Montag, 24. Oktober 2016, 19:33 von fugenkomponist »

Manuela

  • Member
Re: Doppel-f als Text ergibt einen seltsamen Effekt im PDF
« Antwort #2 am: Montag, 24. Oktober 2016, 19:48 »
Welchen PDF-Viewer verwendest du denn?

Acrobat Reader 7.0

Anscheinend hat Adobe die schlechteste Read-Engine, wirklich paradox...

fugenkomponist

  • Member
Re: Doppel-f als Text ergibt einen seltsamen Effekt im PDF
« Antwort #3 am: Montag, 24. Oktober 2016, 20:36 »
Welchen PDF-Viewer verwendest du denn?

Acrobat Reader 7.0

Anscheinend hat Adobe die schlechteste Read-Engine, wirklich paradox...
Tja, ich hab hier Acrobat Reader 9.5.5 und der kanns eben auch nicht. Scheint so, als müßtest du nen anderen Viewer verwenden, um Text zu kopieren. Aber wofür brauchst du das überhaupt?

Manuela

  • Member
Re: Doppel-f als Text ergibt einen seltsamen Effekt im PDF
« Antwort #4 am: Montag, 24. Oktober 2016, 21:19 »
Tja, ich hab hier Acrobat Reader 9.5.5 und der kanns eben auch nicht. Scheint so, als müßtest du nen anderen Viewer verwenden, um Text zu kopieren. Aber wofür brauchst du das überhaupt?

Ich kopiere das Inhaltsverzeichnis aus dem PDF in eine Textdatei und kann sie anschließend nach Belieben formatieren, 2spaltig etc.
Geht wahrscheinlich mit Lilypond auch, aber dafür bräuchte ich ein Jahrtausend, um das rauszufinden  ;)

harm6

  • Member
Re: Doppel-f als Text ergibt einen seltsamen Effekt im PDF
« Antwort #5 am: Montag, 24. Oktober 2016, 22:36 »
Zitat von: Manuela
Ich kopiere das Inhaltsverzeichnis aus dem PDF in eine Textdatei und kann sie anschließend nach Belieben formatieren, 2spaltig etc.
Was willst Du erreichen?
Andere Formatierung innerhalb eines lilypond-book
oder
das Inhaltsverzeichnis exportieren um es anderweitig zu verwenden?

Die erste Möglichkeit ist natürlich machbar.
Die zweite aber auch. Gibt schon fertigen Code dafür:
http://lilypond.org/doc/v2.19/Documentation/usage/sharing-the-table-of-contents

Gruß,
  Harm

Manuela

  • Member
Re: Doppel-f als Text ergibt einen seltsamen Effekt im PDF
« Antwort #6 am: Montag, 24. Oktober 2016, 23:15 »

das Inhaltsverzeichnis exportieren um es anderweitig zu verwenden?

Die erste Möglichkeit ist natürlich machbar.
Die zweite aber auch. Gibt schon fertigen Code dafür:
http://lilypond.org/doc/v2.19/Documentation/usage/sharing-the-table-of-contents


Genau das will ich, das Inhaltsverzeichnis als Text exportieren.

Jetzt müsste ich nur noch wissen, wie ich diesen Code in eine Textdatei ummünzen kann  ;)

Ich nehme an, irgendwie muss ich den Output in eine Datei umlenken. Ich habe folgendes gefunden:

#(with-output-to-file "display.txt"
   (lambda () #{ \displayMusic {
     c
     4\f
     } #}))

schaffe es aber nicht, das mit dem Code zu verknüpfen.

harm6

  • Member
Re: Doppel-f als Text ergibt einen seltsamen Effekt im PDF
« Antwort #7 am: Montag, 24. Oktober 2016, 23:35 »
Es wird automatisch ein file ausgegeben. Es trägt den Namen "file.toc", wobei file der Name des files ist in dem dieser code angwendet wird.

Der Code stammt ursprünglich von Rainhold Kainhofer, der ihn seinen Bedürfnissen angepasst hatte und war dann lange in Vergessenheit geraten.

Man kann ihn natürlich neu anpassen, hier ein volles Beispiel, mit klitze-kleinen Veränderungen:

\version "2.18.2"

#(define (oly:create-toc-file layout pages)
  (let* ((label-table (ly:output-def-lookup layout 'label-page-table)))
    (if (not (null? label-table))
      (let* ((format-line (lambda (toc-item)
             (let* ((label (car toc-item))
                    (text  (caddr toc-item))
                    (label-page (and (list? label-table)
                                     (assoc label label-table)))
                    (page (and label-page (cdr label-page))))
               ;(format #f "~a, section, 1, {~a}, ~a" page text label)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
               (format #f "~a, ~a, ~a" page text label)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
               )))
             (formatted-toc-items (map format-line (toc-items)))
             (whole-string (string-join formatted-toc-items ",\n"))
             (output-name (ly:parser-output-name))
             (outfilename (format "~a.toc" output-name))
             (outfile (open-output-file outfilename)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        (if (output-port? outfile)
            (display "page, text, label\n" outfile))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        (if (output-port? outfile)
            (display whole-string outfile)
            (ly:warning (_ "Unable to open output file ~a for the TOC information") outfilename))
        (close-output-port outfile)))))

\paper {
  #(define (page-post-process layout pages) (oly:create-toc-file layout pages))
}

{
\tocItem "auf Seite 1"
c'1
\pageBreak
\tocItem "auf Seite 2"
d'
\pageBreak
\tocItem "auf Seite 3"
e'
}

Wenn Du das als atest-40.ly abspeicherst und compilierst, so ensteht atest-40.pdf wie üblich sowie atest-40.toc im selben Ordner. Das zweite allerdings ohne Meldung im Terminal. Kann man natürlich auch haben, wenn gewünscht.

atest-40.toc hat dann folgenden Inhalt:
Zitat
page, text, label
1, auf Seite 1, toc99,
2, auf Seite 2, toc100,
3, auf Seite 3, toc101

Was genau dahin geschrieben wird könnte natürlich ebenfalls noch angepasst werden.

Aber erstmal soweit, hth,
  Harm

Manuela

  • Member
Re: Doppel-f als Text ergibt einen seltsamen Effekt im PDF
« Antwort #8 am: Dienstag, 25. Oktober 2016, 07:46 »
Danke Harm, wie immer ganz toll  :) :) :)

Den Beitrag sollte man vll. in einen eigenen Thread auslagern, zwecks leichterer Auffindbarkeit.

Das *.toc habe ich entweder übersehen, oder  es steht wegen der Verwendung von Frescobaldi irgendwo in einem temporären Ordner.

Mehr am Nachmittag, das Offline-Leben ruft  ;)

Manuela

  • Member
Re: Doppel-f als Text ergibt einen seltsamen Effekt im PDF
« Antwort #9 am: Dienstag, 25. Oktober 2016, 14:51 »
Hier ist der Thread, ich denke, das Thema ist es wert  :)

Auch wenn ich anscheinend der einzige Mensch auf der Welt bin, der auf dieses Problem gestoßen ist bzw. das Bedürfnis hat, das Inhaltsverzeichnis fernab von Lilypond zu formatieren  ;)