Anzeige:
Ergebnis 1 bis 7 von 7

Thema: beamer - Leerzeichen zwischen 'Figure/Table' und Doppelpunkt

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.02.2012
    Beiträge
    10

    beamer - Leerzeichen zwischen 'Figure/Table' und Doppelpunkt

    Hallo,

    ich würde gerne Folien erstellen (beamer) und haben nun leider das Problem, dass ein Leerzeichen zwischen "Figure" bzw. "Table" und dem danachfolgenden Doppelpunkt eingefügt wird, also:

    Figure : Bildunterschrift
    bzw.
    Table : Tabellenunterschrift

    und nicht

    Figure: Bildunterschrift
    bzw.
    Table: Tabellenunterschrift

    Folgendes Minimalbeispiel erzeugt diesen Fehler bei mir:

    Code:
    \documentclass{beamer}
    \usepackage{lmodern}
    
    \begin{document}
    \begin{frame}
    \begin{table}
    \begin{tabular}{cc}
    a & b \\
    c & d
    \end{tabular}
    \caption{Test}
    \end{table}
    \end{frame}
    \end{document}
    Ich verwende:
    This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/W32TeX) (format=pdflatex 2012.11.8)
    und
    Document Class: beamer 2013/01/04 3.26 A class for typesetting presentations

    Ich habe auch gerade MikTeX installiert und dort tritt das Problem auch auf.

    Weiß jemand, ob das ein Paketfehler ist und wenn ja wie man ihn beheben kann?

    Vielen Dank und viele Grüße
    Alan

    PS: Im Anhang meine *.log-Datei und die "Fehler"-*.pdf-Datei.

  2. #2
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Keine Ahnung, wo das herkommt und wieso nicht nummeriert wird (mit beamer kenne ich mich nicht aus). Verhindern kannst du es so:
    Code:
    \documentclass{beamer}
    \usepackage{lmodern}
    \usepackage{caption}
    \begin{document}
    \begin{frame}
    \begin{tabular}{cc}
    a & b \\
    c & d
    \end{tabular}
    \captionof{table}{Test}
    \end{frame}
    \end{document}
    Eine Gleitumgebung brauchst du bei beamer ja nicht, die sind sowieso so umdefiniert, dass sie nicht gleiten.

  3. #3
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von rstuby Beitrag anzeigen
    Keine Ahnung, wo das herkommt
    Das wurde wohl 'mal in Beamer geändert, früher war es nach meinem Wissensstand nicht so. (Da kann ich mich aber auch irren.)

    In beamerbaseauxtemplates.sty findet sich folgende Zeile:

    Code:
    \defbeamertemplate*{caption label separator}{colon}{ : }
    Also ist es explizit so gewollt, ein Leerzeichen vor und eines nach dem Doppelpunkt.

    und wieso nicht nummeriert wird
    Das Default-Beamer-Caption-Template nummeriert nicht, AFAIK ist das schon immer so gewesen. Für nummerierte Abbildungen und Tabellen gibt es das Template "numbered", was man bei Bedarf mit
    Code:
    \setbeamertemplate{caption}[numbered]
    auswählen kann.

    Verhindern kannst du es so:
    Aber nur aufgrund eines Bugs im caption-Paket bzw. der Tatsache, daß die Sache mit dem Leerzeichen vor dem Doppelpunkt an mir vorrüber gegangen ist. Denn ist eine Philosophie des caption-Paketes, daß die Default-Einstellungen der Dokumentenklasse nicht geändert werden (was hier aber der Fall ist).

    Eine Gleitumgebung brauchst du bei beamer ja nicht, die sind sowieso so umdefiniert, dass sie nicht gleiten.
    Und genau deswegen verstehe ich den Bonus bei der Verwendung von \captionof hier nicht.

    Ich würde einfach alles so lassen und entweder ein eigenes Beamer-Template "caption label separator" via \defbeamertemplate definieren, oder aber
    Code:
    \usepackage[labelsep=colon]{caption}
    verwenden, um explizit "Doppelpunkt, gefolgt von einem Leerzeichen" einzustellen.

    (Ich persönlich würde ersteres, also die Verwendung des Template-Mechanismus von Beamer, bevorzugen, denn wozu ein extra Paket, wenn Beamer dafür eigene Mechanismen zur Verfügung stellt, und dann sogar eines extra für den Trenner bei Abbildungs-/Tabellen-Beschriftungen?)
    Geändert von sommerfee (22-04-2013 um 20:34 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.02.2012
    Beiträge
    10
    Hallo sommerfee,

    vielen Dank für den Hinweis mit der Datei beamerbaseauxtemplates.sty. Ich habe allerdings noch eine zweite Datei (beamerinnerthemedefault.sty
    ) gefunden, in der auch " : " definiert ist.

    Code:
    \defbeamertemplate*{caption label separator}{default}{ : }
    Sollte man nun beides ändern?

  5. #5
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von alan-g Beitrag anzeigen
    Sollte man nun beides ändern?
    Wieso beides ändern? Ich muß gestehen, diese Frage nicht zu verstehen, es gibt doch nur ein "caption label separator" Template!?

    Ich hatte das einfach so gedacht:
    Code:
    \documentclass{beamer}
    \usepackage{lmodern}
    
    \defbeamertemplate*{caption label separator}{xxx}{: }
    \setbeamertemplate{caption label separator}[xxx]
    
    \begin{document}
    \begin{frame}
    \begin{table}
    \begin{tabular}{cc}
    a & b \\
    c & d
    \end{tabular}
    \caption{Test}
    \end{table}
    \end{frame}
    \end{document}
    Wobei der Name "xxx" von mir sehr kreativ gewählt worden ist, da würde ich lieber einen sprechenden Namen verwenden

  6. #6
    Registrierter Benutzer
    Registriert seit
    20.02.2012
    Beiträge
    10
    Zitat Zitat von sommerfee Beitrag anzeigen
    Wieso beides ändern? Ich muß gestehen, diese Frage nicht zu verstehen, es gibt doch nur ein "caption label separator" Template!?
    Gemeint war das so: Das Leerzeichenproblem interpretiere ich so, dass das ein ungewollter Fehler ist. Deshalb würde ich die Originaldateien ändern und kein neues Template erstellen. Es gibt aber zwei Dateien:

    (1) beamerbaseauxtemplates.sty
    mit der Zeile 633
    \defbeamertemplate*{caption label separator}{colon}{ : }

    (2) beamerinnerthemedefault.sty
    mit der Zeile 347
    \defbeamertemplate*{caption label separator}{default}{ : }

    Meine Frage zielte dahin ab, dass das hier 2x "falsch" gemacht wurde. Oder sehe ich hier etwas falsch?

  7. #7
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von alan-g Beitrag anzeigen
    Gemeint war das so: Das Leerzeichenproblem interpretiere ich so, dass das ein ungewollter Fehler ist.
    Das sehe ich nicht so, das Leerzeichen steht explizit dort. Es ist hingegen ein ungewollter Fehler im caption-Paket, daß das Leerzeichen verschwindet, wenn das caption-Paket ohne "labelsep"-Option geladen wird; dies werde ich morgen korrigieren. [1]

    Deshalb würde ich die Originaldateien ändern
    Originaldateien zu ändern ist keine gute Idee. Man macht dadurch die Grundidee von (La)TeX zunichte, daß das Dokument auf jedem Rechner das gleiche Ergebnis liefert.

    und kein neues Template erstellen.
    Wieso nicht? Du möchtest ": " als Trenner, also ist es doch nur logisch, wenn du das deshalb in deinem Dokument explizit einstellst.

    [1] https://sourceforge.net/p/latex-caption/tickets/10/
    Geändert von sommerfee (27-04-2013 um 18:26 Uhr) Grund: Fußnote hinzugefügt

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •