- If it is supposed to be used like a package, then turn it into a package so that you can benefit from the LaTeX support for packages (options, versioning, preventing double inclusion...). This is very easy, see the clsguide file.
- You could use siunitx instead of siunits. Then you get all benefits of siunits, plus much more, for example the ability to use exponential notation in the usual ASCII way:
\SI{1.23e4}{\meter\per\second}. - Contrary to your description, changing the
\delimitershortfallactually works, but only for delimiters.(and)aren't delimiters but simple symbols that are placed without any special treatment.\left(and\right)are "real" delimiters. Try\left( \left( a \right) \right). - It is generally not a good idea to simply redefine text-mode commands like
\cor\d. Other packages could rely on their standard meaning, and packages like hyperref overwrite them anyway. To be able to use one-letter commands properly, you have to go a bit further: Load the package fixltx2e and distinguish between math and text mode using\TextOrMath:. If you want these changes to survive hyperref, you have to perform them at the beginning of the document or after loading hyperref.Code: Select all
\renewcommand*\c{\TextOrMath\caccent\mathundertilde}\newcommand*\mathundertilde[1]{\underaccent{\tilde}{#1}} - Don't just save meanings with \let, it doesn't check if you overwrite something. (For example, you overwrite the existing \SS command, which can lead to unexpected behaviour, try
\MakeUppercase{\ss}.) Test for existing command names with an empty\newcommand. - Output error messages with
\PackageError, not by typesetting them. - You cannot use
\verbinside an argument, nowhere. Using illegal parameter values in\acoordand so on produces a bunch of silly error messages because of that. Try this:$\acoord[2]{2}$. - Why do you start using
\providecommandinstead of\newcommandsomewhere in the middle?\providecommandis intended for cases where at some point it is unknown whether a command was defined and a definition has to be available in every case, but without overwriting a potential previous definition. In packages, this is usually not the case. \ifinneris unreliable because it doesn't take the right branch in most amsmath environments. Furthermore, it's unnecessary because\fracalready distinguishes between inline and display mode. Compare:Code: Select all
$\od12 \qquad \frac{\d1}{\d2}$ \[ \od12 \qquad \frac{\d1}{\d2} \] \begin{gather*} \od12 \qquad \frac{\d1}{\d2} \end{gather*}- You don't have to use constructions like
\left< #2 \vphantom{#3} \right| \left. #3 \vphantom{#2} \right>because e-TeX provides the\middleprimitive:\left<#2\middle|#3\right> - Use
\DeclareMathOperatorto declare functions like\asintto get the spacing right. Compare:$2\sin(1) \quad 2\asint12$ - Please don't rename internal commands like
\sp, this inevitably leads to package clashes. - Include the bm package and then use
\bmfor "better" bold symbols.
Document Classes ⇒ Metric (TFM) file not found. (stmary)
Metric (TFM) file not found. (stmary)
Learn LaTeX easily with newest books:
The LaTeX Beginner's Guide: 2nd edition and perfect for students writing a thesis
The LaTeX Cookbook: 2nd edition full of practical examples for mathematics, physics, chemistry, and more
LaTeX Graphics with TikZ: the first book about TikZ for perfect drawings in your LaTeX thesis
-
pstallinga
- Posts: 1
- Joined: Thu Sep 05, 2013 11:48 am