So, hier eine TeX-Frage, bitte keine LaTeX-Lösungen anbieten, sondern Plain TeX ohne e-TeX-Erweiterungen, möglichst nur Lösungen, wie man sie aus dem Texbook ableiten kann.
Ich möchte die Befehlsdefinitionen verbatim auslagern und auch wieder verbatim einlesen. Wie geht das?
Es geht um eine Anmerkung: exportiert werden sollen die Befehle in Open in writeLaTeX
\texnewdef[slanted, Formatiert den ersten Parameter als slanted]{\def\slanted[#1]{{\sl #1}}} Hier das Beispiel Open in writeLaTeX
%definition von verbatim in TeXBook \outer\def\begindisplay{\obeylines\startdisplay} {\obeylines\gdef\startdisplay#1 {\catcode`\^^M=5$$#1\halign|\bgroup\indent##\hfil&&\qquad##\hfil\cr}} \outer\def\enddisplay{\crcr\egroup$$} \chardef\other=12 \def\ttverbatim{\begingroup \catcode`\\=\other \catcode`\{=\other \catcode`\}=\other \catcode`\$=\other \catcode`\&=\other \catcode`\#=\other \catcode`\%=\other \catcode`\~=\other \catcode`\_=\other \catcode`\^=\other \obeyspaces \obeylines \tt} {\obeyspaces\gdef {\ }} % \obeyspaces now gives \ , not \space| \outer\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=0pt \catcode`\|=0\rightskip=-5pc \ttfinish}{\catcode`\|=0 \catcode`|\=\other % |obeylines |gdef|ttfinish#1^^M#2\endtt{#1|vbox{#2}|endgroup$$}} \catcode`\|=\active {\obeylines\gdef|{\ttverbatim\spaceskip=\ttgl\"u\let^^M=\ \let% |=\endgroup}} %definition von verbatim in TeXBook \newcount\texcomnum %Zähler für die Befehle \newwrite\texmanual %Schreibanweisung für externe Datei \immediate\openout\texmanual=\jobname.man %öffnen und benennen der externen Datei \def\texdisplaymanual{\vskip1\baselineskip BEFEHLSREFERENZ von \jobname.tex \vskip2\baselineskip\immediate\closeout\texmanual \input \jobname.man \vfill } %Einlesen der externen Datei \def\texnewdef[#1,#2]#3{\advance\texcomnum by 1 \immediate\write\texmanual{\the\texcomnum. #1: {#2}\vskip0.1\baselineskip {\tt Hier soll die Befehlsdefintion verbatim-formatiert erscheinen} \vskip1\baselineskip }#3} %leer übergeordnete Befehlsdefinition mit Texthinweis (an der Stelle %steht später der Befel \texnewdef[slanted, Formatiert den ersten Parameter als slanted]{\def\slanted[#1]{{\sl #1}}}% Anwendung der übergeordneten Befehlsdefinition mit neuer Definition und % Schreibanweisung \texnewdef[bold, Formatiert den ersten Parameter als bold]{\def\bold[#1]{{\bf #1}}}% Anwendung der übergeordneten Befehlsdefinition mit neuer Definition und % Schreibanweisung Anwendung im Text \slanted[Slanted text] \bold[Bold text] \texdisplaymanual \bye gefragt 06 Sep '14, 00:37 ctansearch |
Man kann die Definition eines Makros in TeX mit Open in writeLaTeX
\escapechar=91 \message{\meaning\bf} führt zur Ausgabe: Open in writeLaTeX
\message{\meaing\ttfinish} wird also angezeigt als: Selbst, wenn man die Ausgabe irgendwie zerlegt, etwa mit Open in writeLaTeX
\gdef\parsemacro#1:#2->#3<-{\def\isarg{#2}\def\isdef{#3}} \expandafter\parsemacro\meaning\ttfinish<-% \message{\string\def\string\ttfinish\isarg{\isdef}} wird man nicht mehr die ursprüngliche Definition erhalten, sondern Hinweis: Statt mit Bei Verwendung von e-TeX, das für plainTeX i. d. R. als Übrigens: Wenn man bei Open in writeLaTeX
\gdef\parsemacro#1macro:#2->#3<-{\def\islong{#1}\def\isarg{#2}\def\isdef{#3}} höchstwahrscheinlich nicht. Man bräuchte das beantwortet 06 Sep '14, 09:48 gast3 |