PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Korrekturversion / Track changes



AnNaMF
21-04-2012, 15:59
Hi!

Da für Gutachter ganz angenehm suche ich nach einer Möglichkeit ausgehend von einer bestimmten semi-finalen Version meines Dokumentes Korrekturversionen zu erstellen, d.h. Versionen in welchen der Diff zur jeweiligen Vorversion sichtbar wird (ähnlich wie man das von Track Changes in Word kennt).

Die Markierungen sollten im PDF sichtbar werden.

Am Ende müssen, zur Erstellung der finalen Version, die Korrekturanmerkungen auch wieder einfach entfernbar sein.

Ich nutze übrigens zur Erstellung des Gesamtdokumentes viele einzelne tex files die sich gegenseitig includen.
Es wäre also toll wenn das Tool diese includes automatisch berücksichtigen würde.

Wie macht man das am besten?

Über die Suche om Forum habe ich nichts gefunden.
Via Google habe ich http://www.ctan.org/tex-archive/support/latexdiff und http://trackchanges.sourceforge.net/ gefunden.

Empfehlungen?

AnNaMF
21-04-2012, 17:01
Nachtrag:
Da ich auch anzeigen können möchte welche Änderung von welchem Gutachter kam, tendiere ich zu TrackChanges - seidenn jmd. kennt was besseres.

Update:
Ausprobiert und für relativ unbrauchbar befunden; TrackChanges zerschiesst alle Fußnoten und sorgt aus irgendeinem Grund dafür dass sich die Schriftarten ändern.
Vllt habt Ihr ja einen besseren Tipp.

Xenara
21-04-2012, 18:39
Du kannst dir mal diesen (http://www.golatex.de/idee-fuer-ueberarbeiten-befehle-fuer-latex-a-la-word-t5922,highlight,word.html) Link ansehen, ich hatte mal ein ähnliches Problem und habe einen entsprechenden Code selbst geschrieben, vielleicht passt das für deine Anforderungen.

AnNaMF
21-04-2012, 20:54
Hi!

Das ist fast genau was ich will.
Ich habs schon am laufen, würde aber gerne eine Kleinigkeit ändern, aber bin mir nicht sicher wie ich das am besten mache.

Ich möchte die Farben der Boxen am Rand nicht von der Art der Änderung abhängig machen, sondern vom Gutachter, dh Gutachter 1 soll überall grüne Markierungen am Rand sehen, Gutachter 2, rote usw.
Der Text hingegen soll rot sein für Einfügungen, blau für xyz.

So, es geht also nur noch darum die Farbe der Box von einer Variable abhängig zu machen.

Für den add Befehl ist das ja so definiert:



% Einfügen-Funktion \add{eingefügter Text}{Anmerkung/Kommentarnummer}
\makeatletter
\if@todonotes@disabled%
\newcommand{\add}[2]{#1}
\else% \if@todonotes@disabled
\newcommand{\add}[2]{%
\textcolor{red}{%
#1%
\todo[linecolor=red, backgroundcolor=red!10,bordercolor=red]{\##2}%
}%
}
\fi
\makeatother


Meine Idee war nun sowas zu erlauben:



\setreviewer{Klaus}{green}


Als Definition dachte ich an sowas:



\newcommand{\setreviewer}[2]{%
\newcommand{\#1}{#2}%
}


Und das wollte ich dann quasi in dem add Befehl zum dynamischen Setzen der Farbe nutzen:



\makeatletter
\if@todonotes@disabled%
\newcommand{\add}[2]{#1}
\else% \if@todonotes@disabled
\newcommand{\add}[2]{%
\textcolor{red}{%
#1%
\todo[linecolor=\#2, backgroundcolor=red!10,bordercolor=red]{\##2}%
}%
}
\fi
\makeatother


Aber so geht es wohl nicht ganz.
Wie kann ich das umsetzen?

Ich denke was nicht funktioniert ist:



\newcommand{\#1}{#2}%


Eigentliche suche ich ja nur ein key->value Mapping.

Sorry, "code" recht wenig bis garnicht mit Latex :)

AnNaMF
21-04-2012, 21:42
Okay, ich bin 1 Schritt weiter:



\makeatletter
\newcommand{\setreviewer}[2]{%
\@namedef{reviewer#1}{#2}%
}
\makeatother


Aber was noch nicht funktioniert ist das \reviewer#1 dann irgendwo zu bentzen, also hier:



\makeatletter
\if@todonotes@disabled%
\newcommand{\add}[2]{#1}
\else% \if@todonotes@disabled
\newcommand{\add}[2]{%
\textcolor{red}{%
#1%
\todo[linecolor=\reviewer#1, backgroundcolor=red!10,bordercolor=red]{\##2}%
}%
}
\fi
\makeatother


Ideen?

AnNaMF
21-04-2012, 21:54
Habs doch noch hinbekommen:



% Einfügen-Funktion \add{eingefügter Text}{Anmerkung/Kommentarnummer}
\makeatletter
\if@todonotes@disabled%
\newcommand{\add}[2]{#1}
\else% \if@todonotes@disabled
\newcommand{\add}[2]{%
\textcolor{red}{%
#1%
\todo[linecolor=\@nameuse{reviewer#2}, backgroundcolor=red!10,bordercolor=red]{\##2}%
}%
}
\fi
\makeatother


Falls jmd. interessiert ist kann ich den Code online stellen sobald ich fertig bin?

Xenara
21-04-2012, 23:00
Wäre super, wenn du das online stellen könntest!
Vielleicht sollte man daraus doch mal noch ein Package machen, scheint, als wäre ich da nicht die Einzige, die sowas ab und an braucht.

AnNaMF
21-04-2012, 23:57
Gerne.

Ich hänge nur noch an einer Stelle.
Ich würde gerne die Kommentare je Gutachter hochzählen.

Dazu definiere ich nun auch noch Counter pro Gutachter:



% Festlegen der Reviewerfarbe \setreviewer{ReviewerID}{Farbe}
\makeatletter
\newcommand{\setreviewer}[2]{%
\@namedef{reviewer#1}{#2}%
\@namedef{creviewer#1}{creviewer#1}%
\newcounter{\@nameuse{creviewer#1}}%
\setcounter{\@nameuse{creviewer#1}}{1}%
}
\makeatother


Der Teil funktioniert auch.
Aber ich schaffs nicht auf den Wert zuzugreifen.

Probiert habe ich:



\todo[linecolor=\@nameuse{reviewer#1}, backgroundcolor=\@nameuse{reviewer#1}!10,bordercol or=\@nameuse{reviewer#1}]{#1: \thecreviewer#1}%


Aber \thecreviewer#1 wird nicht zu \thecreviewerKlaus oder zumindest akzeotiert das Latex so nicht. Schreibe ich von Hand \thereviewerKlaus hin funktioniert es.

Ideen?

AnNaMF
22-04-2012, 00:09
Okay, der Teil ist auch gelöst:



\todo[linecolor=\@nameuse{reviewer#1}, backgroundcolor=\@nameuse{reviewer#1}!10,bordercol or=\@nameuse{reviewer#1}]{#1: \arabic{\@nameuse{creviewer#1}}}%


Gesamtlösung dann die Tage...

AnNaMF
22-04-2012, 00:40
Anbei die finale Lösung wie ich sie mir am besten gefällt...

Usage:

- Das File einbinden (Einzeiler) (wer ein Package draus machen möchte -> gerne)
- Die Gutachter und die Farbe definieren mit welcher deren Changes markiert werden sollen, z.B. so:

\setreviewer{A}{red}
\setreviewer{B}{green}
\setreviewer{C}{blue}
\setreviewer{D}{black}

Das war es eigentlich schon; danach einfach im Text (unter Nutzung entsprechender Tex Befehle) die Changes umsetzen.

- Im erzeugten PDF werden dann am Seitenrand farbige Markierungen gesetzt so dass jeder Reviewer sofort die für ihn relevanten Changes erkennen kann
- Zusätzlich werden die Changes selbst im Text farbig markiert (rot = hinzugefügt, blau = gelöscht, usw.); die Farbcodierung hat nichts mit der Farbcodierung für die Gutachter zu tun...
- Zusätzlich gibt es einen Index mit allen Changes wobei jeder Eintrag auch klickbar ist (schnelles Navigieren)
- Changes werden pro Gutachter hochgezählt (hilfreich wenn man zB kommunzieren will dass man Change #17 nicht gut umgesetzt findet etc.)
- Durch einfaches setzen einer Variable kann man alle Changes "accepten" und das finale Druckdokument erzeugen

AnNaMF
22-04-2012, 02:18
Kleine Korrektur.

Xenara
23-04-2012, 21:08
Danke fürs Hochladen :)