Zur Textbearbeitung braucht man gelegentlich eine Kommentarfunktion, um Textstellen zu markieren und mit Ergänzungen zu versehen, anzeigen zu lassen und später abzuarbeiten. Wie kann man so eine Funktion mit einfachen Mitteln selbst definieren?

Dieser Frage ist "Community Wiki" markiert.

gefragt 22 Mai '14, 21:35

ctansearch's gravatar image

ctansearch
(ausgesetzt)
Akzeptiert-Rate: 18%

wikifiziert 22 Mai '14, 22:26

Verstehe ich richtig, dass Du nicht sowas wie TeX-Kommentare meinst, also Text nach %? Was Du stattdessen meinst, ist mir nicht klar... eine Art TODO-Notizen, die visuell im Dokument (oder in einer Hilfsdatei, oder...) ausgegeben werden?

(22 Mai '14, 21:38) cgnieder

@Clemens Ja, sowas wie ToDoNotes. Frage geändert.

(22 Mai '14, 21:41) ctansearch

@ctansearch Was stört dich denn an beispielsweise todonotes oder ähnlichen Paketen? Warum möchtest du das selbst implementieren?

(22 Mai '14, 21:53) Johannes

@Johannes Gar nix, will nur ein Lernbeispiel einbringen ,wie man das einfach machen kann.

(22 Mai '14, 21:56) ctansearch

@ctansearch das Thema lernbeispiele scheint mir wenig zielführend (aber vielleicht sehe ich das falsch). Ich hab mal notizen und todo hinzugefügt. Wenn ich später ein wenig Zeit habe, schreibe ich vielleicht eine Antwort, da ich letztens selbst angefangen habe, etwas derartiges zu schreiben. Ist allerdings noch unausgereift... :)

(22 Mai '14, 22:10) cgnieder

@Clemens Ok, mir fällt auf die Schnelle immer nicht das passende Stichwort ein. Ich setze auf Wiki, dann kann jeder die Antwort schrittweise erweitern.

(22 Mai '14, 22:26) ctansearch
Ergebnis 5 von 6 show 1 more comments

Zunächst kann man sich einen einfachen Kommentar-Befehl definieren:

Open in writeLaTeX
   \newcommand{\acomment}[1]{#1}

Diesen kann man beliebig im Text einsetzen, der Text(#1) wird dann angezeigt. Wenn man den Text bearbeitet hat und den Kommentar nicht mehr braucht, löscht man ihn (dann geht er verloren, oder setzt ein '%'Zeichen davor (Hier muß man darauf achten, daß alles, was nach dem '%' kommt, ignoriert wird.).

Die nächste Überlegung ist, die Kommentare im Quelltext stehen zu lassen, aber nur einen Hinweis im Text anzuzeigen, wo ein Kommentar zu finden ist. Dazu kann man dem Befehl eine Marke mitgeben und die Anzeige des Kommentars abschalten.

Open in writeLaTeX
        \renewcommand{\acomment}[1]{\textsuperscript{c} %#1
}

Ab hier findet man im Text immer ein hochgestelltes c, wenn im Quelltext ein Kommentar gegeben wurde. Eventuell möchte man statt des c eine Zahl anzeigen lassen, die die Nummer des Kommentars angibt. Dazu definiert man einen Zähler und lässt diesen mit jedem Kommentar hochzählen und anzeigen:

Open in writeLaTeX
\newcounter{acomment}
\renewcommand{\acomment}[1]{\refstepcounter{acomment}}\textsuperscript{\theacomment} %#1
    }

Später kommt man auf die Idee, sich die Inhalte der Kommentare nach Bedarf anzeigen zu lassen, oder sie auszublenden.

Open in writeLaTeX
\newcounter{acomment}
\setcounter{acomment}{1} %Fehlerquelle!
\renewcommand{\acomment}[1]{\refstepcounter{acomment}\textsuperscript{\theacomment} 
\ifnum\value{acomment}>0 #1 \else \fi
    }

Vielleicht überlegt man sich dann, sich die Kommentare von einem bestimmten Punkt an anzeigen zulassen, um die schon bearbeiteten auszublenden

Open in writeLaTeX
\newcounter{acomment}
\newcounter{fromcomment}
\setcounter{fromcomment}{1}
\renewcommand{\acomment}[1]{\refstepcounter{acomment}\textsuperscript{\theacomment} 
\ifnum\value{acomment}>\value{fromcomment} #1 \else \fi
    }

Zuletzt will man sich die Kommentare eventuell in einem Anhang anzeigen lassen, und will sie dazu in eine externe Datei schreiben. Gleichzeitig kommt hier die Funktion hinzu, sowohl die Kommentare, als auch deren Textmarken ab einer bestimmten Zahl auszublenden oder einzublenden. Zuletzt fügen wir noch eine Überschrift für den Anhang ein (subsubsection{Comments}) und fertig ist die Kommentarfunktion. Welche Hervorhebung man im Text benutzt, kann man leicht selbst einstellen, indem man textbf im Befehl durch andere Auszeichnungen ersetzt (bspw fbox)

Open in writeLaTeX
\newwrite\comments%
\immediate\openout\comments=\jobname.comt%
\newcommand{\acomment}[1]{#1}%
\newcounter{acomment}%
\newcounter{fromcomment}%
\setcounter{fromcomment}{9}%
\renewcommand{\acomment}[1]%
{%
  \refstepcounter{acomment} %
  \immediate\write\comments{\theacomment\ #1 \par}%
  \ifnum\value{acomment}>\value{fromcomment}%
  \textsuperscript{\textbf{\theacomment}}\textbf{#1 }%
  \else \fi%
}%
\newcommand{\thecomments}%
{%
\immediate\closeout\comments %
\subsubsection*{Comments} \par \input \jobname.comt%
}%
Permanenter link

beantwortet 22 Mai '14, 22:24

ctansearch's gravatar image

ctansearch
(ausgesetzt)
Akzeptiert-Rate: 18%

bearbeitet 23 Mai '14, 20:51

Ich würde das Paket "easy-todo benutzen. Es bietet zum einen den Vorteil, dass man einfach mit {todo}{Erledige dies...} seine Notizen und Aufgabenvermerke anlegen kann.

Mit listoftodos kann man sich dann eine Liste aller Notizen, Aufgaben usw. ausgeben lassen. Mit

Open in writeLaTeX
 \usepackage[%
    % enabled%
    ,disabled
    ,section%
    ]{easy-todo}

kann die Ausgabe der Notizen ein- bzw. ausgeschaltet werden. Ich fand dieses Paket in einem größeren Projekt mit Zuarbeiten von mehreren Personen sehr hilfreich. In der jeweiligen PDF-Ausgabe-Version war dann auch gleich erkennbar, wer noch was zu erledigen hatte.

Permanenter link

beantwortet 22 Mai '14, 23:10

RMF's gravatar image

RMF
133359
Akzeptiert-Rate: 0%

1

@RMF Danke für die Antwort. Mir geht es hier aber nicht um bestehende Lösungen, sondern darum, aufzuzeigen, wie man sich eine solche Lösung selbst erstellt. Wenn Du willst, stelle Deine Antwort in http://www.texwelt.de/wissen/fragen/5041/welche-textbearbeitungswerkzeuge-gibt-es-in-texlatex-welche-kann-man-empfehlen

ein, als Ergänzung zu der Beschreibung von http://www.ctan.org/tex-archive/macros/latex/contrib/easy-todo

(22 Mai '14, 23:18) ctansearch
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×117
×2
×1

gestellte Frage: 22 Mai '14, 21:35

Frage wurde gesehen: 9,044 Mal

zuletzt geändert: 23 Mai '14, 20:51