podar@sbcs.UUCP (Sunil Podar) (06/18/85)
I got a couple of responses regarding my offer to post this list, hence here is a long (my apologies for being rather verbose) list of comments, kluges, bugs? and at times mere observations about the quirky behavior of LateX. By and large things work out right except for little things. I am a very satisfied user of LaTeX and quite enthusiatic about it. I don't know troff at all, but my impression is that LaTeX is much simpler to learn and use. I hope this list will be of use to you and might save you a few hours of hacking. We have the older version of LaTeX here i.e. 2.06a hence some of these comments might not be valid for later versions. I will be glad to hear about your experiences. Perhaps some ideas underlying my comments could be candidates for considerations in future updates. enjoy. LaTeX: QUIRKS, COMMENTS, OBSERVATIONS, BUGS? -------------------------------------------- (compiled from experiences of: ganesh@sbcs, stark@sbcs, sen@sbcs, myself) 1. The caption in the pic environment seems to have a bug. the literal ''Fig. 2.1'' always prints in normalsize roman no matter what font is active in your environment. I had to use explicit makebox and design my own caption whenever I used other fonts. 2. Also shortstack doesn't work with the caption command properly. It lines up the bottom of stack with the ''Fig. x.y'' line. A parbox with proper lining-up option might work. haven't tried. 3. In the pic environment you can only put circles at specified coordinates; no other character works. What happens is that the character is treated as a box and the bottom-left corner of the box is put at the specified coordinates and not its center.If you really want other chars like + or a * then you have to put them in a \makebox(0,0) and this way you can put any symmetrical chars including a variety of math symbols. e.g. \put(70,54){\makebox(0,0){$\otimes$}} ... {\makebox(0,0){$*$}} ... {\makebox(0,0){\framebox(2,2){$+$}}} (!!). 4. \baselinestretch works, but is highly screwed up. a. \renewcommand{\baselinestretch}{1.6} before the \begin{document} magnifies the baselineskip globally for the entire document. 1.6 approx. gives a double spacing if using 10pt typesize. For other typesizes you will have to play with the value. b. The errata claims that you can change baselinestretch anywhere in the document and it gets redefined only when you give a type-size-changing command. Yes, but if you follow the renewcommand by a \normalsize command & IF YOU WERE ALREADY IN THE NORMALSIZE MODE then it acts smart and doesn't recalculate things; It works if you fool it as follows: \renewcommand{\baselinestretch}{0.6} \large %just to force the renewing, a bug and a kluge \normalsize %to get back to normalsize moral is that to enforce the renewing you have to CHANGE the currently active type-size & go back. The errata says that the \begin{document} command executes a \normalsize hence defining the baselineskip but I guess that works because it is the first time. c. The errata also claims that a global declaration of baselinestretch (before \begin{document}) ``magnifies'' (in double quotes) baselineskip suggesting that future changes made to it ought to be relative to this value, but that is not true. Each renewcommand redefines ABSOLUTE baselineskip. d. It seems that only \mainbaselineskip has been eliminated. \baselineskip is perhaps still valid and could be used locally but haven't tried. 5. The `` '' sequence in tt font does not translate to " ". I guess this behavior ought to be expected since tt is a fixed-width font. 6. If you combine two tabular environments using minipages to appear side-by-side, one without \hline and the other with them, then they don't line up i.e. the one with \hline's takes a wee bit more space per line , in other words it seems that hline takes additional space. Perhaps with the \cline the problem should disappear. 7. There seems to be no way to tell latex not to break words, e.g. hyphenated words like-this-one. In troff apparently you can say $roman like-this-one$ but if you try in latex in math mode, it thinks - is a minus sign and puts spaces between the individual words. ***** I found out a way. \mbox{arguement} does the job, but still can not resolve linebreaking if a long word in \mbox is at the end of line. 8. \dashbox(0,10) or \dashbox(10,0) can be used to get variety of dash'ed lines, except that it seems it is not meant to be used this way; it leaves a small dash (of size \unitlength) on both ends on the axis with 0 width. It ought to be fixed thereby making the command really powerful, atleast for getting horizontal & vertical dashed lines. 9. How does one give a \sloppy command or achieve an equivalent effect when using p-expressions in tabular environment. LaTeX complains hell of a lot with line-breaking there, but there seems to be no simple & obvious way to tell it to be sloppy. Same problem is there in \parbox in tabbing environment --- do you have to give a \sloppy command in EVERY \parbox!!!!?. Is there a way to tell it to be sloppy in the whole environment?. I tried putting the entire tabular env in {\sloppy ..... but it didn't work. 10. Note: If you want a * as part of regular text immediately following a \\ then you must use {} before the *, else the * is treated to mean \\*. (see page 15 of THE MANUAL). 11. some quirks about tabular env. a. the following two are more-or-less equivalent: i. \begin{flushleft} \begin{tabular}{......} ....... \end{tabular} \end{flushleft} ii.\noindent \begin{tabular}[l]{.....} ....... \end{tabular} I had empty lines before and after the environments in (i) & (ii). in (i) there is additional vertical space before & after the tabular env. In (ii) the vertical spacing was the same as \parskip. b. no matter what, the tabular environment seems to leave ONE char worth of space on the left margin, whether you use (i) or (ii) above!!. can't get it to really flush on the left. c. found out the way in errata. use {@{}lp{..}} to cancel the space at the beginning. 12. tabular env: avoid using it unless you must. If you suspect even slightly that the tabular env might either be too big for ONE page or that in the final layout it might come at the bottom of a page and thus spill over to the next page, DONT USE IT. LaTeX does not break a page in the middle of a tabular env. Use tabbing instead, with a {\parbox[t]{xin}{.......}} construct in colums where a paragraph is desired; a bit painful, but you'll be happy eventually.I use an abbreviation for the parboxes: pb -----> {\parbox[t]{X.Yin}{ to make life easier. Of course, the tabbing env is not advisable if the text in columns is anything other than flush on the left. Also if you must use a tabular, and run into problems, then in your final version after seeing how things will locate themselves, you can explicitely break the env into two or more exactly same env's. 13. In giving labels to figures, put them after the \caption stmt, otherwise it picks up thr section number instead of the fig. number. 14. use ~ if you do not want a line break in the middle. ~ is meant to be used in place of the blank separating the words. e.g. "Figure 2.3" is broken & is usually not desirable so you say Figure~2.3. Use mbox if the words in question have hyphens in the middle. 15. doesn't like numerals in the name of the newcommand, i.e. the new name that you give to the defined command. ( can't say \newcommand{\xyz1}{\hspace{2em}} ) 16. In array (in displaymath mode) all fractions are automatically reduced in size and printed in textstyle. use explicit displaystyle command for them if you like bigger looking fractions. The eqnarray environment does not do that to the fractions.!!! 17. If there are figures that appear with text on the same page and there is not enough space between the figure & the text then one way is play with the \intextsep & \textfloatsep, but the manual advises against it because they are supposed to be rubber lengths. One simple way around that is to have extra space (e.g. \medskip, \vspace...,etc.) just after the \begin{figure} or just before the \end{figure} statement, after the \caption & \label statement if any. 18. If you have accented math symbols in a \caption statement, put them in a \mbox with \protect otherwise it bombs out in printing the listoffigures, although it prints OK in the text; gives an "improper spacefactor" error. e.g. \caption{junk junk \mbox{$\,\protect\tilde{h}\,$} more junk} \protect may not be necessary, but then the manual says, if in doubt put it. 19. If ever latex complains with "inserted {" or "}" or gives an error of "missing \endgroup" when everything seems OK and all {} matched then it probably means it wants the offending paragraph or environment in a \parbox or \minipage. It often likes to have things in a so-called "outer para mode" when the manual doesn't specifically say so and that means it wants a parbox. one instance with me was: I had the following setup with two pictures that could fit on one page (I could have used two figure envs, but then it may not have put them both on one page): .... \begin{figure} \begin{picture}... ...... \end{picture} \caption{....} <-------bombed out here and it worked only when I put both the pictures in separate parboxes. \begin{picture}... ...... \end{picture} \caption{....} \end{figure} 20. Is there a simple way to manipulate the fontsizes of things like Chapter 1, Apendix A, that LaTeX chooses by itself (in report style). I think not. They come out much too big for my liking. The only way seems to be to redefine the \@makechapter... & related commands using \makeatletter & \makeatother (not documented & perhaps not meant to be used). Same problem is with the default roman font for such captions even if the rest of the document is in some other font. 21. does not expand file name "s3.5" to "s3.5.tex" (for example) ; but does expand "s3" to "s3.tex" 22. LaTeX should have a begin{comment} & end{comment} environment that it will simply ignore, instead of requiring one to put % in all the lines. 23. bug in underline?: In any kind of math mode \underline requires two args e.g.\underline{}{this will get underlined} whereas in regular paragraph mode it requires only one.In math mode it just eats up the first arg and underlines the second properly; can't think of any need for the fist arg in math mode. 24. Underlining doesn't quite work properly when you have a variety of consecutive words underlined. e.g. thats how it comes out: aaaaaaaaaa yyyyyyyyy bbbbbbbbbb ---------- _________ ---------- ^^^^^^^^^ meaning that if a char in the underlined word extends below the "bottom of line" then the underline gets lowered. One solution that I found is to use a strut "\rule[-1mm]{0mm}{1ex}" in every word. If you have many words then you could put the whole set of words in an mbox with one strut (I haven't tried this but think it would work). The only problem with the second solution is that you will have to do your own linebreaking that is to say have separate mbox'es if one such mbox is much too big for one line. I don't know how one would manage justification of text; perhaps a better idea is to underline each word individually!!!! and have some \newcommand like "\newcommand{\myunderline}[1]{\underline{\rule[-1mm]{0mm}{1ex}#1}}" (I said , something like, don't hold me to above definition) and use \myunderline for every word.!? 25. Latex gives a rather thin line for \overline, \frac, & \underline. I haven't been able to figure out how to manipulate the thickness of such lines. Help!!! I tried playing around with the following, and none of them worked: a. changing \fboxrule thinking that's what might affect it. b. \thicklines c. changing \linethickness Perhaps this dirty fix will work: {\bf \underline{\rm #1}} -- Sunil Podar SUNY at Stony Brook CSNET: podar@sbcs.csnet ARPA: podar%suny-sb.csnet@csnet-relay.arpa UUCP: {allegra, hocsd, philabs, ogcvax} !sbcs!podar