Das Problem war hier schon mal Thema, aber mir gelingt es nicht, die Lösung umzusetzen. Wie kann ich an die Definition, die zwischen %Ausgangscode und %endAusgangscode gegeben ist, einen Parameter so übergeben, daß immer dort wo "any" erscheint, ein beliebiger Text erscheint, sodaß ich die einfache anynotes-Definition in beliebig viele Definitionen transformieren kann(anynotes, mynotes, newnotes.. etc)? Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} %Ausgangscode \newcounter{anynote} \newwrite\theanynotes \immediate\openout\theanynotes=\jobname.any\relax \newcommand{\anynote}[1]{ \stepcounter{anynote}{\tiny\textsuperscript{\raisebox{1ex}{\hbox{\kern-0.0em\theanynote\kern-0.0em}}}} \immediate\write\theanynotes{\theanynote\ #1 \par}} \newcommand{\displayanynotes}[1]{\vspace{1\baselineskip}\immediate\closeout\theanynotes\par\tiny\textbf{#1}\par\input\jobname.any\normalsize}% %endAusgangscode \begin{document} Hier ist der\anynote{anynote}Testtext. Hier ist der\anynote{anynote}Testtext. \displayanynotes{Anynotes} \end{document} gefragt 24 Mär '14, 01:20 ctansearch cgnieder |
Das kann man so machen: einen Befehl drum herum basteln: Open in writeLaTeX
\newcommand\newnotetype[1]{% ... } in diesem Befehl jedes Vorkommnis von »any« durch Open in writeLaTeX
\expandafter\newwrite\csname the#1notes\endcsname Außerdem muss man jedes vorherige auftauchen von Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} \newcommand\newnotetype[1]{% \newcounter{#1note}% \expandafter\newwrite\csname the#1notes\endcsname \expandafter\immediate\expandafter\openout \csname the#1notes\endcsname=\jobname.#1\relax % \expandafter\newcommand\csname#1note\endcsname[1]{% \stepcounter{#1note}% {% \tiny\textsuperscript{% \raisebox{1ex}{\hbox{\kern-0.0em\csname the#1note\endcsname\kern-0.0em}}% }% }% \expandafter\immediate\expandafter\write\csname the#1notes\endcsname {\csname the#1note\endcsname\ \unexpanded{##1 \par}}% }% % \expandafter\newcommand\csname display#1notes\endcsname[1]{% \vspace{1\baselineskip}% \expandafter\immediate\expandafter\closeout \csname the#1notes\endcsname \par\tiny\textbf{##1}\par \input\jobname.#1\normalsize }% } \newnotetype{any} \newnotetype{my} \newnotetype{foo} \begin{document} Hier ist der\anynote{any note} Testtext. Hier ist der\mynote{my note} Testtext. Hier ist der\anynote{any note} Testtext. Hier ist der\foonote{foo note} Testtext. Hier ist der\foonote{foo note} Testtext. Hier ist der\mynote{my note} Testtext. \displayanynotes{Any notes} \displaymynotes{My notes} \displayfoonotes{Foo notes} \end{document} beantwortet 24 Mär '14, 10:11 cgnieder @Clemens Sehr schöne Lösung. Mit \textcolor{red}{\anynote{any}} kann man zusätzlich jede Markierung farblich nach Belieben kennzeichnen.
(24 Mär '14, 23:17)
ctansearch
@ctansearch man könnte auch die Definition von
(25 Mär '14, 01:04)
cgnieder
|
Zur Vervollständigung: Im folgenden Code kann man beliebig viele neue Notes-Typen anlegen, diese farblich absetzen und in einer Tabelle oder nach Belieben auflisten. Den Code integriere ich später in mbenotes.sty, er funktioniert aber auch eigenständig. Open in writeLaTeX
\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} \usepackage{xcolor} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%newNOTES%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand\newnotestype[2]{% \newcounter{#1note}% \expandafter\newwrite\csname the#1notes\endcsname \expandafter\immediate\expandafter\openout\csname the#1notes\endcsname=\jobname.#1\relax % \expandafter\newcommand\csname #1note\endcsname[1]{% \stepcounter{#1note}% {% \tiny\textsuperscript\expandafter\textcolor{#2}{{% \raisebox{1ex}{\hbox{\kern-0.0em\csname the#1note\endcsname\kern-0.0em}}}}% \expandafter\immediate\expandafter\write\csname the#1notes\endcsname% {\csname the#1note\endcsname\ \unexpanded{##1 \par}}% }}% % \expandafter\newcommand\csname display#1notes\endcsname[1]{% \vspace{1\baselineskip}% \expandafter\immediate\expandafter\closeout% \csname the#1notes\endcsname% \par\tiny\expandafter\textcolor{#2}{\textbf{##1}}\par% \input\jobname.#1% }}% \usepackage{longtable} \parindent=0pt \newnotestype{new}{red} \newnotestype{ade}{magenta} \newnotestype{any}{blue} \begin{document} Ein Testtext\adenote{Anmerkung} mit vier\newnote{Anmerkung} verschiedenen\anynote{Anmerkung}\newnote{Anmerkung} farblich gekennzeichneten Anmerkungen.Ein Testtext ohne verschiedene farbliche Anmerkungen. \vspace{-2\baselineskip} \begin{longtable}[l]{p{2cm}p{2cm}p{2cm}} \displaynewnotes{new}&\displayadenotes{ade}&\displayanynotes{any}\\ \end{longtable} \end{document} beantwortet 27 Mär '14, 01:11 ctansearch |