Thread: Re: [MiKTeX] How to embed raw TEX into LATEX? (Zaid Zulkifli)
MiKTeX source code moved to GitHub
Brought to you by:
csc
From: Waq <ida...@gm...> - 2008-06-27 14:54:35
|
Thanks for the swift replies. And sorry for the not very specific problem description. I try again. In particular, I cant even compile this. \documentclass{article} \begin{document} \magnification=1000 Hello, world! \end{document} I received "Undefined control sequence" error message for \magnification=1000 . I never seen the command before, so I thought it's from raw TEX. Anyway I manage to compile the TEX source after I remove \magnification, so I can actually proceed with my work. So any explanation about this command? Thanks again for all the replies. |
From: Joseph W. <jos...@mo...> - 2008-06-27 15:00:55
|
Waq wrote: > Thanks for the swift replies. And sorry for the not very specific problem > description. I try again. > > In particular, I cant even compile this. > > \documentclass{article} > \begin{document} > \magnification=1000 > Hello, world! > \end{document} > I received "Undefined control sequence" error message for > \magnification=1000 . I never seen the command before, so I thought it's > from raw TEX. Anyway I manage to compile the TEX source after I remove > \magnification, so I can actually proceed with my work. So any explanation > about this command? > "TeX" is unfortunately used to refer to TeX the program and Plain TeX, the set of macros that Knuth wrote as a template for others and to do useful work with TeX the program. Running "tex" will load the Plain TeX format on most systems. LaTeX uses TeX the program, and so inherits all of the commands defined by the program. LaTeX also implements *most* of the Plain TeX format, meaning that most "plain" macros are available. However, there are a small set of macros defined in the Plain TeX format that are not implemented by LaTeX, of which \magnification is one. As was said earlier, Lamport decided that there are better ways of magnifying the whole of a document, by altering things at the viewing/printing stage. You have \magnification=1000, which means "show at 100 %", i.e. original size (\magnification is out of 1000). So if your case, this command would not even do anything to the result (if it were implemented). Hope this helps, Joseph Wright |
From: Ted P. <te...@te...> - 2008-06-27 18:39:47
|
> In particular, I cant even compile this. Make the modifications below and you'll be able to compile and see the results... > \documentclass{article} Add: \input{plain} here. > \begin{document} > \magnification=1000 Change the 1000 in \magnification=1000 to something larger than 1000 (e.g., 5000). > Hello, world! > \end{document} > I received "Undefined control sequence" error message for > \magnification=1000 . I never seen the command before, so I thought it's > from raw TEX. Anyway I manage to compile the TEX source after I remove > \magnification, so I can actually proceed with my work. So any explanation > about this command? Now try to compile your document: pdflatex -interaction=nonstopmode blah.tex OR latex -interaction=nonstopmode blah.tex Everything should work after that. --Ted -- Ted Pavlic <te...@te...> |
From: M. S. <ma...@on...> - 2008-06-27 21:08:06
|
2008/6/27 Waq <ida...@gm...>: > I received "Undefined control sequence" error message for > \magnification=1000 . I never seen the command before, so I thought it's > from raw TEX. Anyway I manage to compile the TEX source after I remove Why do you experiment with unknown commands without reading the documentation and then complain to other people about TeX? :-( Go away and use Word, please. |
From: Alain D. <esp...@sw...> - 2008-06-28 08:19:07
|
Martin Schröder a écrit : > 2008/6/27 Waq <ida...@gm...>: > >> I received "Undefined control sequence" error message for >> \magnification=1000 . I never seen the command before, so I thought it's >> from raw TEX. Anyway I manage to compile the TEX source after I remove >> > > Why do you experiment with unknown commands without reading the > documentation and then complain to other people about TeX? :-( > > Go away and use Word, please. > Unacceptable comment! \flameon You should also go away and use whatever you want if you are not able to help others in a forum. Did you even think that he received a file with unknown commands/systems and was asked to immediately use, without training, the same kind of system to do his work, so inheriting perhaps unusefull/unknown commands for his own work? I can see why there are wars all over the world! \flameoff Alain Delmotte |
From: Christopher H. <cch...@gm...> - 2008-06-29 02:53:21
|
On Sat, Jun 28, 2008 at 9:35 AM, Ted Pavlic <te...@te...> wrote: > [...] > There's a TeX vs. LaTeX teachable moment here . . . > > >> \flameon > ... >> \flameoff > > > As an example, if you're using LaTeX, the proper code for a flame > environment is: [...] Ted left out the "TeX teachable moment" here. In (Plain) TeX, the command would just be {\flame ... } and there's no need to waste an extra macro (\endflame). --- Christopher Heckman |
From: Christopher H. <cch...@gm...> - 2008-06-29 21:05:29
|
On Sun, Jun 29, 2008 at 10:12 AM, Ted Pavlic <te...@te...> wrote: >> Ted left out the "TeX teachable moment" here. In (Plain) TeX, the >> command would just be >> >> {\flame ... } >> >> and there's no need to waste an extra macro (\endflame). > > I'm going to argue that that's not a flame *environment* so much as it > is a flame group. *Environments* in TeX (regardless of A/adjective) > *always* start and end with macros. True, but only because { is an abbreviation for \begin and } is an abbreviation for \end. > Environments are distinct because that extra \end macro isn't simply > wasted --- it does something that grouping simply cannot. In fact, it > allows for some things that simply cannot work within a group. > > That being said, it's important to note that: > > {\em stuff} > > and > > \emph{stuff} > > (and other similar examples) are not identical. The latter is preferred > in LaTeX because it has the ability to do post-"stuff" spacing > correction, which is necessary when "stuff" is slanted or italicized. (1) The point of my e-mail was to discuss the non-LaTeX aspect, which was not addressed in the e-mail that I was responding to. (2) \macro{stuff} has its flaws as well; for instance, if you forget the closing }, TeX may have to load the rest of the file into its memory before finding the mistake (if \macro has the attribute \long assocated with it), whereas for {\macro ...}, TeX can continue scanning as usual. (It only has to save the current "state of affairs".) > Additionally, many people mistakingly think that {\bf bold} has been > deprecated in favor of \textbf{bold}. Only LaTeX people, I think you mean. > In fact, {\bf bold} has been > deprecated in favor of {\bfseries bold}. That is, the shorter "\bf" has > been left for the USER to redefine (so that the user can determine what > "bold" really means). [...] In Plain TeX, you can redefine ANY macro to have a new meaning whatsoever; if your document doesn't have any tildes in it, you can define \~ to be anything you want. LaTeX puts up a fuss. In fact, IIRC, Knuth mentions (in the TeXBook, of all places) that you can say: \def\title{\def\rm crm10 at 18pt [and other analogous statements for \it and \bf] } and type "{\title A large-font title with {\bf bold} type}", and have all the fonts the same size. Presumably, this was built in to LaTeX. --- Christopher Heckman |
From: Ted P. <te...@te...> - 2008-06-30 02:25:07
|
>> In fact, {\bf bold} has been >> deprecated in favor of {\bfseries bold}. That is, the shorter "\bf" has >> been left for the USER to redefine (so that the user can determine what >> "bold" really means). [...] > > In Plain TeX, you can redefine ANY macro to have a new meaning > whatsoever; if your document doesn't have any tildes in it, you can > define \~ to be anything you want. LaTeX puts up a fuss. In fact, > IIRC, Knuth mentions (in the TeXBook, of all places) that you can say: Maybe I was a little lazy with my language. LaTeX is TeX, and in LaTeX you can do all of these things. You can redefine \bf and you can redefine \bfseries. For convenience, Lamport has given LaTeX users \bf to play with without having to copy its original meaning somewhere else first. The point of my original message was just to illuminate some of the implementation for common LaTeX macros and some useful raw TeX primitives. I *think* most people who are pick up LaTeX *before* learning about TeX view LaTeX like a programming language. They don't think about the code from character-to-character (or token-to-token). A successful way to view TeX (endorsed by Knuth in TeXbook) is as a kind of character monster (a finite state machine) eating characters in one end and spitting things out the other (and changing its own state). LaTeX has done it's best to isolate the user from this experience (for better or for worse). To them, LaTeX is a programming language. To a TeX user, TeX is a grammar. I *think* most new LaTeX users who duck, hide, and eventually run from a thread that starts to get into what's really going on at the level of TeX. So, for now, I just wanted to give a little bit of a peak under the hood... Just enough to keep things understandable... but not so much as to make them want a mechanic. --Ted -- Ted Pavlic <te...@te...> |
From: Ted P. <te...@te...> - 2008-06-28 14:35:42
|
\pedagogical There's a TeX vs. LaTeX teachable moment here . . . > \flameon ... > \flameoff As an example, if you're using LaTeX, the proper code for a flame environment is: \begin{flame} \end{flame} However, the \begin and \end macros do nothing more than call: \flame \endflame and so bracketing an environment in these macros is (in principle) equivalent to using the \begin and \end environments. Further, a naive implementation of \begin and \end is: \newcommand\begin[1]{\csname #1\endcsname} \newcommand\end[1]{\csname end#1\endcsname} which is equivalent to the "raw" TeX (which may also be used in LaTeX): \def\begin#1{\csname #1\endcsname} \def\end#1{\csname end#1\endcsname} In other words, \newcommand and \def are basically the same beast. However, \newcommand is a macro (created with \def) that checks to make sure you haven't already \newcommand'd before. SIMILARLY, the REAL \begin and \end wrappers have extra sanity checks for safety. Finally, that leaves \csname BLAH\endcsname which is equivalent to \BLAH Notice that it looks like an environment. So I could also do: \begin{csname}today\end{csname} which actually gives me the same output as \today. \endpedagogical --Ted -- Ted Pavlic <te...@te...> |
From: Alan G I. <ai...@am...> - 2008-06-28 14:48:44
|
On Sat, 28 Jun 2008, Ted Pavlic apparently wrote: > There's a TeX vs. LaTeX teachable moment here. I'm a long-time LaTeX user, and this was almost entirely new to me. Thanks! Alan Isaac |
From: Alain D. <esp...@sw...> - 2008-06-28 16:15:00
|
Thanks for the \pedagogical, Ted. Ted Pavlic a écrit : > \pedagogical > > > .../... > > > \endpedagogical > > --Ted > > |
From: Ted P. <te...@te...> - 2008-06-28 17:19:16
|
I should also note that the source code for LaTeX is included and DOCUMENTED in every LaTeX distribution. Check out the "source2e.pdf" document. You can view it here: http://www.tug.org/tex-live/Contents/live/texmf-dist/doc/latex/base/source2e.pdf or type (e.g., from "Start->Run" in Windows): texdoc source2e to bring up the documentation that is stored on your own system. You'll see that every LaTeX construct is implemented with TeX primitives. Long before LaTeX, authors were doing their own version of what Leslie Lamport publicized. So when you use LaTeX, you're really just using shortcuts that make using TeX more user-friendly. One of the downsides of LaTeX is that it has obscured some important points about how TeX works (e.g., few people think about character codes when they're using LaTeX). That being said, LaTeX has made TeX far more accessible, and that's probably a good thing. And that gets back to the message that started this flame... It's OK for people to have trouble with using LaTeX, and we can't expect everyone to read everything. We should just be happy that the LaTeX community is growing. Otherwise, it could be lost entirely into obscurity (e.g., like all of the OTHER TeX macro packages did when LaTeX came out). --Ted Ted Pavlic wrote: > \pedagogical ... > \endpedagogical > > --Ted > -- Ted Pavlic <te...@te...> |
From: Ted P. <te...@te...> - 2008-06-28 17:25:17
|
> Check out the "source2e.pdf" document. You can view it here: > > http://www.tug.org/tex-live/Contents/live/texmf-dist/doc/latex/base/source2e.pdf > or type (e.g., from "Start->Run" in Windows): > > texdoc source2e > > to bring up the documentation that is stored on your own system. UNFORTUNATELY, it looks like MiKTeX (2.6, at least) does not include the source2e documentation. That's strange. The other distributions (e.g., TeXLive and gwTeX on my OS/X machine) *do* include the documentation. source2e is part of the *base* LaTeX distribution, and so it probably *should* be included. I guess someone made the decision that Windows users would rather not deal with it. So, I guess you'll just have to check out the URL above. --Ted -- Ted Pavlic <te...@te...> |
From: Ted P. <te...@te...> - 2008-06-29 15:12:38
|
> Ted left out the "TeX teachable moment" here. In (Plain) TeX, the > command would just be > > {\flame ... } > > and there's no need to waste an extra macro (\endflame). I'm going to argue that that's not a flame *environment* so much as it is a flame group. *Environments* in TeX (regardless of A/adjective) *always* start and end with macros. Environments are distinct because that extra \end macro isn't simply wasted --- it does something that grouping simply cannot. In fact, it allows for some things that simply cannot work within a group. That being said, it's important to note that: {\em stuff} and \emph{stuff} (and other similar examples) are not identical. The latter is preferred in LaTeX because it has the ability to do post-"stuff" spacing correction, which is necessary when "stuff" is slanted or italicized. Additionally, many people mistakingly think that {\bf bold} has been deprecated in favor of \textbf{bold}. In fact, {\bf bold} has been deprecated in favor of {\bfseries bold}. That is, the shorter "\bf" has been left for the USER to redefine (so that the user can determine what "bold" really means). That being said, for the same reasons discussed in the \emph example above, it's often "better" to use textbf instead of bfseries. --Ted -- Ted Pavlic <te...@te...> |