LaTeX \newcommands in ConTeXt.
I've recently been doing a little work on implementing a few LaTeX kernel bits in ConTeXt, to simplify porting LaTeX code over. It's now at a point where a few of the pieces might actually be useful, and certainly to a point where some comments would be welcomed, so I've put up a version of it online, in this directory: http://dpdx.net/context/latex-compat/ What you'll find there is a fair number of module files, along with a couple of "latextest" files that I've been using to try out the results. latextext.tex is to be compiled in ConTeXt; latextext-latex.tex is to be compiled in LaTeX for purposes of comparison. In any case, I think the implementation of \newcommand (and its relatives) is about up to "beta" level. Ditto with LaTeX lengths. And there's a working LaTeX-like counter implementation, based on ConTeXt counters underneath. (It's not yet hooked into ConTeXt's counters for footnotes and equations and pages, though; I'm not really sure how to do that.) Also, environments are working, in a sort of hackish way. The "array" environment works, but again a bit hackish; I'm planning to clean that up soon, so both of those will get major revisions. I'd particularly appreciate any comments on the \newcommand and counters implementations -- those are in the t-ltcmds and t-ltcnts modules, though \newcommand also depends on t-lterrs and t-ltbase. - Brooks
Brooks Moses wrote:
I've recently been doing a little work on implementing a few LaTeX kernel bits in ConTeXt, to simplify porting LaTeX code over. It's now at a point where a few of the pieces might actually be useful, and certainly to a point where some comments would be welcomed, so I've put up a version of it online, in this directory:
http://dpdx.net/context/latex-compat/
What you'll find there is a fair number of module files, along with a couple of "latextest" files that I've been using to try out the results. latextext.tex is to be compiled in ConTeXt; latextext-latex.tex is to be compiled in LaTeX for purposes of comparison.
In any case, I think the implementation of \newcommand (and its relatives) is about up to "beta" level. Ditto with LaTeX lengths. And there's a working LaTeX-like counter implementation, based on ConTeXt counters underneath. (It's not yet hooked into ConTeXt's counters for footnotes and equations and pages, though; I'm not really sure how to do that.)
Also, environments are working, in a sort of hackish way. The "array" environment works, but again a bit hackish; I'm planning to clean that up soon, so both of those will get major revisions.
I'd particularly appreciate any comments on the \newcommand and counters implementations -- those are in the t-ltcmds and t-ltcnts modules, though \newcommand also depends on t-lterrs and t-ltbase.
i just took a quick look at the code; if you run into tricky definitions, let me know, often there are either already low level macros that do the job, or i can add some stuff; btw, i renamed the internal \end macro so that you can get away from stoptext refinitions (too messy) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
At 04:28 PM 7/25/2005, you wrote:
Brooks Moses wrote:
I'd particularly appreciate any comments on the \newcommand and counters implementations -- those are in the t-ltcmds and t-ltcnts modules, though \newcommand also depends on t-lterrs and t-ltbase.
i just took a quick look at the code; if you run into tricky definitions, let me know, often there are either already low level macros that do the job, or i can add some stuff;
Thanks! I'll probably have lots of questions as I go along -- this is certainly becoming a tour of the internals of both systems.
btw, i renamed the internal \end macro so that you can get away from stoptext refinitions (too messy)
Yeah, the \stoptext redefinition was one of the first pieces I wrote, nearly a year ago. The reason I was doing the \stoptext redefinition wasn't the internal \end macro (which didn't exist then, I think) -- it was that the ConTeXt version I used then didn't have an \everystoptext hook. But now that it exists, I can just use it. One other question I have right now: what's a good way to duplicate LaTeX's \vspace macro (which is effectively a \vskip inside), without causing the problems that the ConTeXt manual warns about if we use \vskip? - Brooks
Brooks Moses wrote:
At 04:28 PM 7/25/2005, you wrote:
Brooks Moses wrote:
I'd particularly appreciate any comments on the \newcommand and counters implementations -- those are in the t-ltcmds and t-ltcnts modules, though \newcommand also depends on t-lterrs and t-ltbase.
i just took a quick look at the code; if you run into tricky definitions, let me know, often there are either already low level macros that do the job, or i can add some stuff;
Thanks! I'll probably have lots of questions as I go along -- this is certainly becoming a tour of the internals of both systems.
btw, i renamed the internal \end macro so that you can get away from stoptext refinitions (too messy)
Yeah, the \stoptext redefinition was one of the first pieces I wrote, nearly a year ago. The reason I was doing the \stoptext redefinition wasn't the internal \end macro (which didn't exist then, I think) -- it was that the ConTeXt version I used then didn't have an \everystoptext hook. But now that it exists, I can just use it.
One other question I have right now: what's a good way to duplicate LaTeX's \vspace macro (which is effectively a \vskip inside), without causing the problems that the ConTeXt manual warns about if we use \vskip?
maybe (a patched version of \godown): \def\godown[#1]% {\ifhmode\endgraf\fi \ifvmode\nointerlineskip\vskip#1\relax} test \godown[10cm] test is \vspace accumulating? Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Hello Brooks,
I've recently been doing a little work on implementing a few LaTeX kernel bits in ConTeXt, to simplify porting LaTeX code over. It's now at a point where a few of the pieces might actually be useful, and certainly to a point where some comments would be welcomed, so I've put up a version of it online, in this directory:
Perhaps it would make sense to create a module and (co-)host this on contextgarden/CTAN? Patrick -- ConTeXt wiki and more: http://contextgarden.net
participants (3)
-
Brooks Moses
-
Hans Hagen
-
Patrick Gundlach