Anzeige:
Ergebnis 1 bis 15 von 15

Thema: Marginal Notes unterdrücken

  1. #1
    Registrierter Benutzer
    Registriert seit
    16.08.2004
    Beiträge
    139

    Marginal Notes unterdrücken

    Hallo zusammen,

    ich schreibe an einer größeren Arbeit und möchte meinen vergesslichen Geist bei einzelnen Absätzen mit Notizen am Rand unterstützen, die am Ende, so der Idealfall, mit einer "nomarginnotes" Option verschwinden sollen.

    Bisher nutzte ich das package "marginnote", das solche Funktion offenbar nicht bietet. Gibt es da was anderes ?

    Vielen Dank für Eure Anregungen

    Grüße und einen schönen Sonntag noch

    Poseidonius

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    gewöhne die bitte an, ein Minimalbeispiel zu erstellen.

    Auf die schnelle:
    \def\marginnote#1{}

    Gruß
    Marco

  3. #3
    Registrierter Benutzer
    Registriert seit
    16.08.2004
    Beiträge
    139
    Grandios !!!

    Anbei noch das Minimalbeispiel ...

    Code:
    \documentclass{book}
    \usepackage{marginnote}
    % "Abschalten" der Marginnotes
    \def\marginnote#1{}
    
    \begin{document}
      \marginnote{Einleitung}
      Rababel Rabubel Rabum 
    
      \marginnote{Ueberblick}
      Ehne mehne meck ...
     
    \end{document}
    Warum brauche ich an dieser Stelle kein "\renewcommand" verwenden? Ich dachte immer LaTex würde "meckern" wenn ich einen bestehenden Befehl neu definiere? Ich habe es nun mit verschiedenen Sachen ausprobiert - offbar falsche Information. Wo ist also der Unterschied zwischen \set, \newcommand und \renewcommand?

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    \newcommand meckert, wenn ein Befehl bereits definiert ist, \renewcommand meckert, wenn der Befehl noch nicht definiert ist. Beides sind LaTeX-Befehle. \def ist der interne, primitive TeX-Befehl, er meckert nie, sondern überschreibt gnadenlos auch bereits existierende Definition, dafür sind es nur 4 Zeichen zu tippen.

  5. #5
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von Poseidonius Beitrag anzeigen
    Grandios !!!

    Anbei noch das Minimalbeispiel ...

    Code:
    \documentclass{book}
    \usepackage{marginnote}
    % "Abschalten" der Marginnotes
    \def\marginnote#1{}
    das dürfte in die Hose gehen, sobald Du einen (oder beide) der zwei optionalen Parameter verwendest, die \marginnote versteht: verwendest Du den ersten, sieht \marginnote die öffnende, eckige Klammer als erstes/einziges Argument, unterdrückt also nur die Ausgabe dieser `[', "foo] bar" wäre nun sichtbar im Text (bei \marginnote[foo]{bar}). Verwendest Du nur das zweite optionale Argument, wird dieses -- samt eckiger Klammer -- im Text sichtbar, erscheint also als [5pt] (bei \marginnote{bar}[5pt]). Verwendest Du beide optionalen Argumente, kombiniert sich das im Text zu "foo]bar[5pt]" (bei \marginnote[foo]{bar}[5pt]). Dann vllt besser
    Code:
    \documentclass{book}
    \usepackage{marginnote}
    % "Abschalten" der Marginnotes
    \makeatletter
    \def\@mn@@marginnote[#1]#2[#3]{%
      \endgroup
    }
    \makeatother
    \begin{document}
      \marginnote{Einleitung}
      Rababel Rabubel Rabum 
    
      \marginnote[links]{rechts}[1ex]
      Ehne mehne meck ...
    \clearpage
      \marginnote{Einleitung}
      Rababel Rabubel Rabum 
    
      \marginnote[links]{rechts}[1ex]
      Ehne mehne meck ...
     
    \end{document}
    Obwohl so eine Umdefinition von @-haltigen Befehlen nach einem Update auch in die Hose gehen kann, es zwingt den Paketautor ja niemand dazu, diese Befehle so wie sie waren beizubehalten, dann vllt noch besser eine Kombination der Art
    Code:
    \makeatletter
    \renewcommand*\marginnote[2][]{%
      \@ifnextchar[%]
        {\mymarginnote[#1]{#2}}{\mymarginnote[#1]{#2}[]}%
    }
    \makeatother
    \newcommand*\mymarginnote{}
    \def\mymarginnote[#1]#2[#3]{}
    das sollte auch solche Updates überstehen, weil es sich um die internen Befehle von marginnote nicht zu kümmern braucht, lediglich an der Syntax vom \marginnote-Befehl selbst darf sich dabei nix geändert haben.

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  6. #6
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    @Rainer,

    dann wäre aber das Paket twoopt besser geeignet:
    Code:
    \usepackage{twoopt}
    \renewcommandtwoopt{\marginnote}[3][][]{}
    Gruß
    Marco

  7. #7
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin Marco,
    Zitat Zitat von mechanicus Beitrag anzeigen
    dann wäre aber das Paket twoopt besser geeignet:
    Code:
    \usepackage{twoopt}
    \renewcommandtwoopt{\marginnote}[3][][]{}
    damit drehst Du aber die Reihenfolge der Parameter um:
    Original: \marginnote[]{}[]
    Nach Umdefinition per twoopt: \marginnote[][]{}.
    Zum Glück gibt's ja auch noch xparse;-)
    Code:
    \usepackage{xparse}
    \RenewDocumentCommand\marginnote{omo}{}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  8. #8
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von rais Beitrag anzeigen
    Moin Marco,

    damit drehst Du aber die Reihenfolge der Parameter um:
    Original: \marginnote[]{}[]
    Nach Umdefinition per twoopt: \marginnote[][]{}.
    Zum Glück gibt's ja auch noch xparse;-)
    Code:
    \usepackage{xparse}
    \RenewDocumentCommand\marginnote{omo}{}
    MfG
    Hi,

    ich habe die Reihenfolge wirklich nicht beachtet

    Gruß
    Marco

  9. #9
    Registrierter Benutzer
    Registriert seit
    28.06.2005
    Ort
    Karlsruhe
    Beiträge
    1.407
    Hallo Rainer und Marco,

    tolle Diskussion über ein Allerweltsproblem. Zumindest ich schreibe häufig Dokumente mit allen mögliche Anmerkungen im Rand (marginfix ist da ein erheblicher Fortschritt), die ich aber bisher alle per Hand vor dem Versenden des pdf beseitigt habe.

    xparse gehört zum L-3 Projekt, twoopt zum Paketezoo von Heiko, der morgen auch anders aussehen kann: Welcher der beiden Methoden, Anmerkungen zu streichen, würdet ihr mehr Zukunft einräumen?

    Gruß,
    Alexander

  10. #10
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin Alexander,
    Zitat Zitat von cookie170 Beitrag anzeigen
    tolle Diskussion über ein Allerweltsproblem.
    mir war gar nicht klar, daß es sich hier um ein Allerweltsproblem handelt.
    Zitat Zitat von cookie170 Beitrag anzeigen
    Zumindest ich schreibe häufig Dokumente mit allen mögliche Anmerkungen im Rand (marginfix ist da ein erheblicher Fortschritt),

    marginfix
    kenn ich noch nicht -- das mag damit zusammenhängen, daß es bei TeXLive derzeit nicht dabei ist.
    Zitat Zitat von cookie170 Beitrag anzeigen
    die ich aber bisher alle per Hand vor dem Versenden des pdf beseitigt habe.
    Wer macht denn sowas?
    Zitat Zitat von cookie170 Beitrag anzeigen
    xparse gehört zum L-3 Projekt, twoopt zum Paketezoo von Heiko, der morgen auch anders aussehen kann:
    @Marco: Alexander kann schon sehr direkt sein, nich?;-)
    Zitat Zitat von cookie170 Beitrag anzeigen
    Welcher der beiden Methoden, Anmerkungen zu streichen, würdet ihr mehr Zukunft einräumen?
    dazu kann ich nichts sagen ...
    Zitat Zitat von Yoda
    Difficult to see...always in motion is the future
    (Schwer zu sehen ... in ständiger Bewegung ist die Zukunft)

    Auf der einen Seite könnte Heiko entscheiden, Dinge wie []{}[] in seinem twoopt-Paket mit zuzulassen, auf der anderen Seite könnten Joseph und Co entscheiden, xparse zu knicken ... oder Markus entscheidet sich, daß \marginnote eine andere Reihenfolge der Parameter vertragen könnte ...
    Davon abgesehen, derzeit funktioniert der Ansatz per twoopt in diesem Zusammenhang eh nicht, wie Dir
    Code:
    \documentclass{book}
    \usepackage{marginnote,twoopt}
    \renewcommandtwoopt{\marginnote}[3][][]{}
    \begin{document}
    bla\marginnote[links]{rechts}[1ex]
    \end{document}
    demonstriert.

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  11. #11
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von rais Beitrag anzeigen
    @Marco: Alexander kann schon sehr direkt sein, nich?;-)
    Das stimmt


    Zitat Zitat von cookie170 Beitrag anzeigen
    xparse gehört zum L-3 Projekt, twoopt zum Paketezoo von Heiko, der morgen auch anders aussehen kann: Welcher der beiden Methoden, Anmerkungen zu streichen, würdet ihr mehr Zukunft einräumen?
    weder noch. Ich bin der Überzeugung, dass sich evtl. interne Algorithmen des Paketes marginnote ändern, aber definitiv nicht die Anweisung. Daher denke ich, dass die Lösung von Rainer
    Code:
    \makeatletter
    \renewcommand*\marginnote[2][]{%
      \@ifnextchar[%]
        {\mymarginnote[#1]{#2}}{\mymarginnote[#1]{#2}[]}%
    }
    \makeatother
    \newcommand*\mymarginnote{}
    \def\mymarginnote[#1]#2[#3]{}
    die zweckmäßigste ist.

    Vielleicht könnten wir Markus vorschlagen, wirklich eine Option mit ins Paket aufzunehmen, welche die Randnotizen nicht ausgibt.

    Gruß
    Marco

  12. #12
    Registrierter Benutzer
    Registriert seit
    28.06.2005
    Ort
    Karlsruhe
    Beiträge
    1.407

    Allerweltsproblem & Co.

    Hallo,

    während man schreibt oder Korrektur liest, fällt einem doch ständig irgendetwas ein, was man hier noch braucht, nachlesen will, überprüfen oder ergänzen muss. Oder man liest eine schönen Satz, der vielleicht gut passt, irgendwo in der Literatur und will vermeiden, hinterher stundenlang zu suchen. Die Methode, derartiges als Kommentar in die Datei zu schreiben, ist ja unpraktischer als irgendwo ins pdf, in verschiedenen Farben.

    Um diese kurzen Notizen will ich mich nicht weiter kümmern müssen. Bisher war es so, dass Randnotizen teilweise übereinander gedruckt wurden oder am Ende der Seite ins Bodenlose liefen. Dieses Problem löst marginfix, aber offenbar um den Preis, dass \raggedbottom nicht mehr einwandfrei funktioniert, da muss ich noch experimentieren.

    In der endgültigen Version muss ich alle Anmerkungen rückstandsfrei entsorgen und die Beseitigung sollte den Zeilen- wie auch den Seitenumbruch unangetastet lassen.

    Ich habe dazu folgende Zeilen zusammengebaut:

    Code:
    %%% Randnoten mit marginfix und perpage
    \newcounter{Rnnr}
    \MakePerPage{Rnnr}% Zähler beginnt neu auffe nächste Seite, Paket
                      % perpage, es gibt noch zref-perpage
    \renewcommand{\theRnnr}{\alph{Rnnr}}
    \newcommand{\Anm}[1]{%
      \stepcounter{Rnnr}%Randnotennummer um eins erhöhen
      \textcolor{red}{\textsuperscript{\textit{\theRnnr}}}% Anker im Text
       \marginpar{% Randnotiz
        \RaggedRight% Flattersatz
        \textcolor{red}{\sffamily{\textsuperscript{\theRnnr}}}% Randnotennummer
        \scriptsize% kleine Schrift
        \textcolor{red}{#1}}}%Randnotentext
    Ich verwende grundsätzlich microtype. Daher wäre es ein rarer Ausnahmefall, dass eine hochgestellte Ziffer zu einem anderen Zeilen-, geschweige denn Seitenumbruch führt. Natürlich, eine Garantie habe ich nicht.

    Solange man \marginpar nicht mit optionalen Argumenten verwendet, reicht also zur Beseitigung (muss ich noch ausprobieren)

    Code:
    \def\marginpar#1{}
    .

    Ansonsten hat man die Wahl zwischen xparse & Co.

    Im Grunde sind das kurze Fußnoten im Rand. Für meine Arbeitsweise sehr fördern.

    Gruß,
    Alexander

  13. #13
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin Alexander,
    Zitat Zitat von cookie170 Beitrag anzeigen
    Um diese kurzen Notizen will ich mich nicht weiter kümmern müssen. Bisher war es so, dass Randnotizen teilweise übereinander gedruckt wurden oder am Ende der Seite ins Bodenlose liefen. Dieses Problem löst marginfix, aber offenbar um den Preis, dass \raggedbottom nicht mehr einwandfrei funktioniert, da muss ich noch experimentieren.
    es gibt auf ctt gerade eine Diskussion microtype vs. ragged2e, vllt trifft das auch auf Dich zu.
    Zitat Zitat von cookie170 Beitrag anzeigen
    In der endgültigen Version muss ich alle Anmerkungen rückstandsfrei entsorgen und die Beseitigung sollte den Zeilen- wie auch den Seitenumbruch unangetastet lassen.

    Ich habe dazu folgende Zeilen zusammengebaut:

    Code:
    %%% Randnoten mit marginfix und perpage
    \newcounter{Rnnr}
    \MakePerPage{Rnnr}% Zähler beginnt neu auffe nächste Seite, Paket
                      % perpage, es gibt noch zref-perpage
    \renewcommand{\theRnnr}{\alph{Rnnr}}
    \newcommand{\Anm}[1]{%
      \stepcounter{Rnnr}%Randnotennummer um eins erhöhen
      \textcolor{red}{\textsuperscript{\textit{\theRnnr}}}% Anker im Text
       \marginpar{% Randnotiz
        \RaggedRight% Flattersatz
        \textcolor{red}{\sffamily{\textsuperscript{\theRnnr}}}% Randnotennummer
        \scriptsize% kleine Schrift
        \textcolor{red}{#1}}}%Randnotentext
    Ich verwende grundsätzlich microtype. Daher wäre es ein rarer Ausnahmefall, dass eine hochgestellte Ziffer zu einem anderen Zeilen-, geschweige denn Seitenumbruch führt. Natürlich, eine Garantie habe ich nicht.
    Öhmm, hier war eigentlich von \marginnote die Rede, nicht von \marginpar.
    Zitat Zitat von cookie170 Beitrag anzeigen
    Solange man \marginpar nicht mit optionalen Argumenten verwendet, reicht also zur Beseitigung (muss ich noch ausprobieren)

    Code:
    \def\marginpar#1{}
    .

    Ansonsten hat man die Wahl zwischen xparse & Co.
    Ehrlich gesagt versteh ich immer weniger, was Du eigentlich willst. Wenn Du Dir eh schon Deinen eigenen Befehl für die Randnotizen gebaut hast, warum definierst Du Dir diesen nicht entsprechend um? So in der Art
    Code:
    \newif\ifskipmarginpars
    \skipmarginparsfalse
    %\skipmarginparstrue
    
    %%% Randnoten mit marginfix und perpage
    \newcounter{Rnnr}
    \MakePerPage{Rnnr}% Zähler beginnt neu auffe nächste Seite, Paket
                      % perpage, es gibt noch zref-perpage
    \renewcommand{\theRnnr}{\alph{Rnnr}}
    \newcommand{\Anm}[1]{%
      \stepcounter{Rnnr}%Randnotennummer um eins erhöhen
      \textcolor{red}{\textsuperscript{\textit{\theRnnr}}}% Anker im Text
       \marginpar{% Randnotiz
        \RaggedRight% Flattersatz
        \textcolor{red}{\sffamily{\textsuperscript{\theRnnr}}}% Randnotennummer
        \scriptsize% kleine Schrift
        \textcolor{red}{#1}}}%Randnotentext
    \ifskipmarginpars
      \renewcommand\Anm[1]{}%
    \fi
    Bei Bedarf kommentierst Du dann einfach die Zeile mit dem \skipmarginparstrue ein und gut ist.

    BTW: Im Gegensatz zu \marginnote versteht \marginpar nur einen optionalen Parameter[1], das könntest Du also auch ganz normal mit
    Code:
    \renewcommand\marginpar[2][]{}
    erledigen ... aber dann hättest Du noch Deine selbstgebastelten Nummern im Text ...

    [1] so marginfix da nicht dran dreht.

    MfG
    Geändert von rais (06-09-2010 um 15:43 Uhr) Grund: quotes vertauscht
    Rainer
    There's nothing a good whack with a hammer won't fix!

  14. #14
    Registrierter Benutzer
    Registriert seit
    28.06.2005
    Ort
    Karlsruhe
    Beiträge
    1.407
    Zitat Zitat von rais Beitrag anzeigen
    Moin Alexander,

    es gibt auf ctt gerade eine Diskussion microtype vs. ragged2e, vllt trifft das auch auf Dich zu.
    Ja, das ist interessant, weil ich ragged2e und microtype verwende, aber selten Gleitumgebungen mit eigenen Titeln.

    Öhmm, hier war eigentlich von \marginnote die Rede, nicht von \marginpar.
    Naja, es wurde auch nach Alternativen gefragt und marginfix erscheint mir als ein erheblicher Fortschritt, aus den beschriebenen Gründen.

    Ehrlich gesagt versteh ich immer weniger, was Du eigentlich willst. Wenn Du Dir eh schon Deinen eigenen Befehl für die Randnotizen gebaut hast, warum definierst Du Dir diesen nicht entsprechend um? So in der Art
    Code:
    \newif\ifskipmarginpars
    \skipmarginparsfalse
    %\skipmarginparstrue
    
    %%% Randnoten mit marginfix und perpage
    \newcounter{Rnnr}
    \MakePerPage{Rnnr}% Zähler beginnt neu auffe nächste Seite, Paket
                      % perpage, es gibt noch zref-perpage
    \renewcommand{\theRnnr}{\alph{Rnnr}}
    \newcommand{\Anm}[1]{%
      \stepcounter{Rnnr}%Randnotennummer um eins erhöhen
      \textcolor{red}{\textsuperscript{\textit{\theRnnr}}}% Anker im Text
       \marginpar{% Randnotiz
        \RaggedRight% Flattersatz
        \textcolor{red}{\sffamily{\textsuperscript{\theRnnr}}}% Randnotennummer
        \scriptsize% kleine Schrift
        \textcolor{red}{#1}}}%Randnotentext
    \ifskipmarginpars
      \renewcommand\Anm[1]{}%
    \fi
    Bei Bedarf kommentierst Du dann einfach die Zeile mit dem \skipmarginparstrue ein und gut ist.
    Oh, danke, Lösungen Nr. 4+5. Sehr elegant. \newif, my ass. Was es alles gibt.

    BTW: Im Gegensatz zu \marginnote versteht \marginpar nur einen optionalen Parameter[1], das könntest Du also auch ganz normal mit
    Code:
    \renewcommand\marginpar[2][]{}
    erledigen ... aber dann hättest Du noch Deine selbstgebastelten Nummern im Text ...
    Ja, und die in rot oder einer anderen Farbe, denn irgendwann will ich ja verschiedene Farben einführen und dann auch mal testen, ob auch links auf andere Textteile im Rand funktionieren.

    Mal wieder vielen Dank für Deine Hilfe. Du hast genau gesehen, was ich will, aber mangels TeX-Kenntnissen nicht hinkriege.

    Ich hoffe nur, dass Poseidonuius nicht vor Lachen erstickt ist, immerhin war seine Anfrage vor ein paar Tagen mit einem Einzeiler beantwortet und inzwischen sind wir bei 20 Zeilen Code.

    Aber mir hat's weitergeholfen,

    Gruß,
    Alexander

  15. #15
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin Alexander,
    Zitat Zitat von cookie170 Beitrag anzeigen
    \newif, my ass. Was es alles gibt.
    siehe `texdoc TeXbyTopic', Abschnitt 13.6.
    Zitat Zitat von cookie170 Beitrag anzeigen
    Mal wieder vielen Dank für Deine Hilfe.
    Da ja nich für.;-)
    Zitat Zitat von cookie170 Beitrag anzeigen
    Ich hoffe nur, dass Poseidonuius nicht vor Lachen erstickt ist, immerhin war seine Anfrage vor ein paar Tagen mit einem Einzeiler beantwortet und inzwischen sind wir bei 20 Zeilen Code.
    Das bezweifle ich, a) seh ich daran nichts Lächerliches und b) war just dieser Einzeiler (potentiell) fehlerbehaftet.
    Zitat Zitat von cookie170 Beitrag anzeigen
    Aber mir hat's weitergeholfen,
    und das ist Imho die Hauptsache ;-)

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

Lesezeichen

Berechtigungen

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