Anzeige:
Ergebnis 1 bis 14 von 14

Thema: spezielle Frage zu Verweisen / etwas dringend

  1. #1
    MPS
    Gast

    Question spezielle Frage zu Verweisen / etwas dringend

    Hi,

    so, schreibe gerade meine Praxisarbeit in LaTeX. So weit ist die auch schon fertig, allerdings bin ich mit den Verweisen etwas unglücklich.
    Und zwar benutze ich das varioref Packet mit dem Befehl \vref. Eigentlich schön, nur hätte ich gerne, falls der Verweis sich nicht auf die aktuelle Seite bezieht, dass immer die Seitennummer steht und nicht "auf der nächsten Seite"... Hab schon gegoogelt allerdings noch keine Lösung gefunden. In der Paketdoku bin ich auch nicht fündig geworden.

    Einen Befehl selbst definieren kann ich mangels Wissen in LaTeX (noch) nicht, der das entsprechende bewirkt.

    Gruß
    Mathias

  2. #2
    Registrierter Benutzer Avatar von Gnihilo
    Registriert seit
    21.05.2007
    Ort
    Rostock
    Beiträge
    150
    Moin,

    wie man den Befehl dementsprechend ändert, weiß ich auch nicht genau, aber versuch's einfach mal mit

    \newcommand{\refx}[1]{\ref{#1} auf Seite~\pageref{#1}}

    Damit erhälst Du immer "XY auf Seite X". Wenn Du auf eine Abb. o.ä. auf der gleichen Seite verweisen willst, kannst ja wieder \vref oder einfach \ref verwenden.

    Ist zwar nicht besonders elegant, aber funktioniert...

    Gruß Jonas.

  3. #3
    Registrierter Benutzer
    Registriert seit
    10.01.2005
    Beiträge
    979
    Hi MPS,

    das geht so einfach nicht. Du kannst den Text anpassen, der ausgegeben wird.

    Code:
    \usepackage{varioref}
    \renewcommand{\reftextbefore}{auf der vorherigen Seite}
    \renewcommand{\reftextafter}{auf der nächsten Seite}
    
    \begin{document}

    Aber eine Seitenzahl ausgeben, dazu müsste man das ganze Packet umschreiben, nicht doll, aber immerhin.


    Salnic

  4. #4
    MPS
    Gast
    Hmm,

    @Gnihilo,
    diesen Bsp. habe ich auch bei der varioref Paketbeschreibung gesehen. Allerdings ist ja das Problem, wenn man Text hinzufügt, dass LaTeX die Bilder evtl. auf eine andere Seite setzt und das dann nicht angepasst wird. Aber wird mir wohl nicht viel übrig bleiben außer das so zu machen.

    @Salnic
    Das habe ich auch in der varioref Beschreibung gelesen. Aber wie gesagt, da hätte ich ja gern die Seitennummer drin. Aber ich werds wohl mit dem Tipp von Gnihilo machen. Sind zum Glück nur 20 Seiten Bericht. Da isses net so wild.

    Aber vielleicht hat ja noch jemand anderst ein Tipp für mich...

    Trotzdem Danke,
    Gruß
    Mathias

  5. #5
    Registrierter Benutzer
    Registriert seit
    10.01.2005
    Beiträge
    979
    Hi Mathias,

    mit der angehängten Modifikation sollte es funktionieren. Packe sie in Deinen Projektordner (umbenennen in *.sty) und fertig.

    Ist zwar schade, weil sich Frank Mittelbach (der Autor des Packetes) sehr viel Mühe gemacht hat, rechte und linke Seiten berücksichtigt, aber wenn Du es nicht willst, bitte :-)

    Salnic

    Code:
    \documentclass[12p,ngerman,a4paper]{report}
    \usepackage{myvarioref}
    %\renewcommand{\reftextbefore}{auf der vorherigen Seite}
    %\renewcommand{\reftextafter}{auf der nähsten Seite}
    
    \begin{document}
    Siehe Tabelle \vref{tab:bsp}
    
    Siehe \vpageref{tab:bsp}\newpage
    \begin{table}\caption{Beispiel}\label{tab:bsp}\end{table}
    Siehe Tabelle \vref{tab:bsp}
    
    Siehe \vpageref{tab:bsp}\newpage
    Siehe Tabelle \vref{tab:bsp}\\
    Siehe \vpageref{tab:bsp}\newpage
    Siehe Tabelle \vref{tab:bsp}\\
    Siehe \vpageref{tab:bsp}\newpage
    \end{document}

  6. #6
    Registrierter Benutzer Avatar von Gnihilo
    Registriert seit
    21.05.2007
    Ort
    Rostock
    Beiträge
    150
    Hab auch noch eine Idee,

    der neue Befehl \refj im Beispiel sollte so funktionieren, wie Du es willst:

    Code:
    \documentclass{scrartcl}
    
    \usepackage{ifthen}
    \usepackage{ngerman}
    \usepackage[T1]{fontenc}
    
    \newcommand{\refj}[1]{\ref{#1} \ifthenelse{\pageref{#1}=\thepage}{auf dieser Seite}{auf Seite~\pageref{#1}}}
    
    \begin{document}
    
    \section{a1} \label{sec:a1}
    In Kapitel \refj{sec:a1} steht\dots \newline
    In Kapitel \refj{sec:b1} steht\dots \newline
    In Kapitel \refj{sec:c1} steht\dots
    
    \newpage
    \section{b1} \label{sec:b1}
    
    \newpage
    \section{c1} \label{sec:c1}
    
    \end{document}
    Musst nur das Paket "ifthen" mit einbinden und sparst Dir damit eine modifizierte .sty-Datei.

    Gruß J.

  7. #7
    MPS
    Gast

    Cool

    Hi,

    @Gnihilo, den Befehl hab ich ausprobiert. Scheint aber nicht 100% zu funktionieren. Siehe Anhang. Das "auf dieser Seite" hab ich durch ein X ersetzt. Auf Seite 2 funktionierts. Allerdings auf Seite 3 ist dann "auf Seite 3" drin. Was ja eigtl. nicht passieren dürfte. Ich find den Fehler jetzt auch nicht. Eventuell kommts dadurch, dass ich im Inhaltsverzeichnis römisch durchnummeriert habe und den Rest arabisch... Hab mindestens 3x n LaTeX durchlauf gemacht...

    @Salnic. Das PAckage hab ich auch ausprobiert. Irgendwie total komisch. Vielleicht mach ich nen Fehler, ich weiss es nicht. Auf jeden Fall, dein Beispiel funzt so wie es soll. Aber wenn ich das dann in mein Dokument einbau verhält es sich genau so wie wenn nichts geändert worden wäre. Und das krasse dabei ist, wenn ich den Text "auf der n\"achsten Seite" ändere, wird das im Dokument später auch geändert. Allerdings ist unten ja alles bezülich \reftextafter usw. auskommentiert. Komische Angelegenheit. Hast du irgendwelche Tipps? Ich kann dir das Dokument auch per Mail schicken. Hat allerdings einige MBs. Aber dass ich mein Dokument in mehrere Verzeichnisse und Dateien verteilt habe, dürfte doch das Paket nicht stören, oder? Bin echt ratlos.

  8. #8
    Registrierter Benutzer Avatar von Gnihilo
    Registriert seit
    21.05.2007
    Ort
    Rostock
    Beiträge
    150
    Hmm...

    bin jetzt erst mal überfragt
    Hab den Befehl probeweise in meine Studienarbeit eingebunden und da funktioniert er wunderbar...

    Schick doch mal ein Minimalbeispiel, vielleicht findet sich da ein Fehler...!

    J.

  9. #9
    Registrierter Benutzer
    Registriert seit
    10.01.2005
    Beiträge
    979
    DU musst mindestens zwei mal kompilieren, damit Latex seine Verweise aktualisiert, im Notfall auch mal die temp. Dateien löschen.

    btw. Jonad, Dein Code gefällt mir recht gut. Habe nicht gewusst, dass man soeinfach an die aktuelle Seite rankommt, man so einfach rausbekommen kann, ob das zu referenzierende Label auf der selben Seite ist.

    Mir fällt gerade ein, dass es Probleme geben kann, wenn es am Ende der Seite steht und die Gefahr besteht, dass der referenzierende Text (siehe Seite xxx) auf die nächste Seite rutsch.

    statt \refj kannst Du auch \vref
    Code:
    \newcommand{\vref}[1]{\ref{#1} \ifthenelse{\pageref{#1}=\thepage}{auf dieser Seite}{auf Seite~\pageref{#1}}}
    definieren, dann muss nichts weiter im Text geändert werden.

    Salnic

  10. #10
    Registrierter Benutzer Avatar von Gnihilo
    Registriert seit
    21.05.2007
    Ort
    Rostock
    Beiträge
    150
    Hast recht... aber warum einfach, wenn's auch kompliziert geht

  11. #11
    MPS
    Gast
    Ja, das refj hab ich schon in vref geändert. Am hab immer noch das gleiche Problem wie oben. Tempdateien hab ich auch schonmal gelöscht. Hat nix gebracht. Naja, wenn nicht machs ich doch per Hand. Sind nur 4 Verweise welche angepasst werden müsste bezüglich nächster Seite usw.

  12. #12
    Registrierter Benutzer Avatar von Gnihilo
    Registriert seit
    21.05.2007
    Ort
    Rostock
    Beiträge
    150
    Mir fällt gerade ein, dass es Probleme geben kann, wenn es am Ende der Seite steht und die Gefahr besteht, dass der referenzierende Text (siehe Seite xxx) auf die nächste Seite rutsch.
    Ist tatsächlich ein Problem! Beim originalen \vref dagegen funktioniert es und beim Compilieren wird sogar noch eine Warnung ausgegeben. Vielleicht ist ein Package einem einzeiligen Befehl doch überlegen...?

  13. #13
    Registrierter Benutzer
    Registriert seit
    24.05.2006
    Beiträge
    4

    myvarioref tut noch nicht

    Hallo Salnic,

    ich habe mir dein myvarioref.sty mal angeschaut - auch bei mir verhält es sich so, als ob ich das ursprüngliche varioref verwende. Es wäre aber tatsächlich ziemlich cool, wenn ich das Skript wie gewünscht anwenden könnte...

    Habe mehrfach kompiliert, auch die Temp Dateien gelöscht. Aber das Skript springt immer noch in reftextfaceafter.

    Könnt ihr, kannst du mir helfen?

    Und dann noch eine Frage: Wenn ich das package nameref einbinde, dann erscheinen die Seitenzahlen, so wie es im varioref.sty eingegeben ist. Welchen Zusammenhang hat dieses package hier??
    Geändert von fsmaus (24-07-2007 um 14:05 Uhr)

  14. #14
    Registrierter Benutzer
    Registriert seit
    10.01.2005
    Beiträge
    979
    Hi fsmaus,

    da mein Minimalbeispiel offensichtlich funktioniert, solltest Du mir ein Minimalbeispiel basteln, in dem es nicht funktioniert. Dann gucke ich mir das gerne an und werde sehen, was man ändern kann.

    Salnic

Lesezeichen

Berechtigungen

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