Wikipedia talk:Manual of Style/Mathematics/Archive 2

Source code and pseudocode

edit

This is to follow up the discussion here WT:WPM#Use of Matlab code in articles, and is also based on a change I made here. Would it be useful to add something on the use of source code and pseudocode in mathematical articles. E.g. based on the following points:

  • Source code is allowed is allowed, but
  • consider that not all readers are programmers or familiar with programming languages, so only use it if there is no alternative
  • use either pseudocode or a common language like C
  • always include a description or explanation
  • use syntax highlighting where possible, even on pseudocode. For example the following
<syntaxhighlight lang = "C"> Tn = (1 + n) * n / 2; // triangular number</syntaxhighlighting> 

Generates

 Tn = (1 + n) * n / 2; // triangular number

The syntaxhighlight tag seems relatively unknown and undocumented, so this is in part intended to document it. But it's also an attempt to come up with guidelines for use in code, to avoid e.g. the issues raised in the original thread where a relatively obscure programming language was used.--JohnBlackburnewordsdeeds 15:44, 10 February 2010 (UTC)Reply

There needs to be an exception for articles that deal with language in question itself or related topics, i.e. articles about matlab topics can contain matlab code.--Kmhkmh (talk) 15:58, 10 February 2010 (UTC)Reply
I've added another point (the second bullet point) that I think important. In reply to the above this is meant to be for mathematical topics like Simplex and Quaternions and spatial rotation. Articles on computing, with readers either knowledgeable about or interested in programming languages, will probably include source code much more.--JohnBlackburnewordsdeeds 17:17, 10 February 2010 (UTC)Reply
I'm aware of that. However if we formulate a general guideline we should cover such cases as well, simply to avoid that later editors mainly focusing standardizing/beautifying throughout WP might take it the wrong way.--Kmhkmh (talk) 20:40, 10 February 2010 (UTC)Reply
The guidelines are mostly meant for the use of code in mathematics articles. I see that general guidelines on syntax colouring might be helpful, though from what I've seen people writing programming articles are already mostly aware of this feature.
I've expanded the example a bit so it uses more language features and shows more colours, to better show the benefit of the highlighting. It could even be a multiline example to better show e.g. how it might be used to demonstrate an algorithm.--JohnBlackburnewordsdeeds 20:56, 10 February 2010 (UTC)Reply
The guidelines look fine to me. In fact, I would go further and say that only pseudocode examples are allowed, except in language-specific articles and examples that illustrate features of a specific language. For an instance of why this guideline is required, take a look at Koch snowflake, a mathematics article that is being overwhelmed by a series of opaque unsourced implementations in different programming languages which add nothing to the article. Gandalf61 (talk) 09:11, 16 February 2010 (UTC)Reply
In that article's case, the Logo implementation would be the one kept, due to appropriateness, but only if sourced, and only if preceded by a pseudocode implementation. LokiClock (talk) 14:34, 16 February 2010 (UTC)Reply
To me, this omits the main issue regarding source code and pseudocode, which is a content one rather than a style one: either source code or pseudocode is ok, as far as I'm concerned, but redundant source code or pseudocode is not. Each piece of source code or pseudocode in an article should describe a different algorithm, in the most appropriate language to describe that algorithm. What we don't want is a pseudocode description of an algorithm followed by source code implementations of the identical algorithm in six different programming languages. —David Eppstein (talk) 16:01, 16 February 2010 (UTC)Reply
Perhaps it would also be good to specify some minimum usage statistic for multiple algorithms, so that if more than one algorithm is to be given in an article it must be shown that each is common or considered significant. But this discussion line really concerns content bloat, not the original topic. LokiClock (talk) 14:20, 18 February 2010 (UTC)Reply

To be clear, what's the consensus? Pseudocode, Common, or Appropriate languages, and which specifically first or only? Consider WikiProjects we should notice for input. This of course does not concern implementations that serve an encyclopedic purpose beyond being an implementation, as when demonstrating the language and not the code, or when the implementation itself has reason to be covered (e.g. for historical importance). LokiClock (talk) 20:15, 21 February 2010 (UTC)Reply

Pseudocode first &| Appropriate LokiClock (talk) 20:15, 21 February 2010 (UTC)Reply
  • 1. The strongest description of an algorithm is description via source code.
  • 2. All algorithms are computer sci. objects, so every reader should be familiar with programming languages.
  • 3. The most strong and well-known programming language is standard Pascal.
  • 4. C/C++/C# is not good programming language to describe an algorithm: C is not readable and has many special details for implementing.
  • 5. Some pseudocode fragments may be inserted into the listing, for example, mathematical notation for expressions n2 ≤ 10 rather than n^2<=10.
  • 6. A listing has to be written in good programming style and well commented.--Tim32 (talk) 06:35, 23 February 2010 (UTC)Reply
  • 7. Very important: every algorithm description must be complete to be realized in computer program!--Tim32 (talk) 06:45, 23 February 2010 (UTC)Reply
  • PS. Note: the standard Pascal is well defined (in its standards), pseudocode is undefined.--Tim32 (talk) 07:03, 23 February 2010 (UTC)Reply
  • Comment. I agree with the sentiment already expressed that if a specific implementation is used, then in general that implementation should be relevant to the content of the article or the algorithm that it intends to illustrate. I also feel rather strongly that members of the C family (including Java) are quite ill-suited to our purpose as an encyclopedia for reasons already stated, and should be rejected as a standard. While I favor pseudocode if possible, I think that Pascal and its variants are quite close to pseudocode, and have the advantage of being well-defined languages. (Python also strikes me as a good language for exposition.) Obviously more specialized languages, like the ML family, might be more suitable for illustrating algorithms that are naturally expressed in a functional language. Sławomir Biały (talk) 13:13, 23 February 2010 (UTC)Reply
I would disagree with using Pascal, for the same reasons I mentioned C in my first post. C is common, Pascal isn't. Not only is C common but the majority of languages people use today (C, C++, Java, C#, ...) are based on it to a greater or lesser extent: every programmer is familiar with C syntax even if they've never used the language. It's well defined by a standard, or standards though the differences between them are quite small & subtle for backwards compatibility reasons. I'm not too worried about readability as if an editor decides to express an algorithm in source code they've already decided to exclude readers who are not programmers or have no experience of reading source code.
It's clear pseudocode means different things to different people. I was thinking of 'code' like that at Quaternions and spatial rotation#Used methods, i.e. mathematical formulae written with C syntax to show calculation steps. The other sort I'm familiar with is when you write out an algorithm in natural language, for checking before replacing it with the actual implementation. But that's a programming tool, used to streamline the coding process. Here where the intent is to express the algorithm it would be better to take that natural language and edit it into a proper explanation, even if it's more verbose than the code.--JohnBlackburnewordsdeeds 14:03, 23 February 2010 (UTC)Reply
"C is common, Pascal isn't" - it is not correct: C++ is common mistake for today practice, sorry for that. But first of all: which language did you mean: C, C++, or C#? You wrote "Not only is C common but the majority of languages people use today (C, C++, Java, C#, ...)", but C++ is not C; C++ has another philosophy and another set of common bugs! But the comparison “C vs C++” is not the subject of our discussion here. (Please, see the book by Scott Meyers under the title "Effective C++" about C++ problems. Due to the problems, today we have very bad software products and a lot of catastrophic events in the world.) Secondly, here we do not want to select the most distributed language, but we wish to select the most suitable language to describe an algorithm. Niklaus Wirth and others proved that standard Pascal is the most suitable for education and so for understanding. As for me since 1980 I printed about 100 papers in computer sci. journals, and when possible I used Pascal to describe my algorithm, and I never heard from editor or from referee that he was unable to understand Pascal. (Similar statement would be a shame for any editor!) Pascal is common; everybody is able to understand it! Please, read 35 pages only of introduction to Pascal by Wirth to understand standard Pascal -- only one day is necessary for it. Wirth’s books are excellent examples of algorithm descriptions and we should use these examples for Wiki. --Tim32 (talk) 16:03, 23 February 2010 (UTC)Reply
I don't understand Pascal: the last time I looked at it was when it was the language of choice on the Mac, 20+ years ago, but I never actually did anything with it. Since then I've learned and used professionally C, C++, C#, Perl and ActionScript, all syntactically derived from C. I'm not going to learn Pascal to follow code written in it: I've not done it for the MATLAB examples I've come across in e.g. Simplex (I replaced it with an explanation, without ever understanding the code - see e.g. [[Talk:Simplex#Cartesian Coordinates section has major problems#here). I can't argue with Wirth about his claims about Pascal, but for whatever reasons the world outside academia uses C-style syntax even in radically different languages.--JohnBlackburnewordsdeeds 16:42, 23 February 2010 (UTC)Reply
Again, I'm sorry, but (1) what does "C-style syntax" ("in radically different languages") mean? (2) Are you sure that Wiki is "outside academia" area? (Wiki community is academic community.) --Tim32 (talk) 17:08, 23 February 2010 (UTC)Reply
PS And again, only one day is necessary to understand standard Pascal. To understand C++ -- much more!--Tim32 (talk) 17:22, 23 February 2010 (UTC)Reply
PS It is interesting to note: nobody here suggested MIX language, at the same time I am sure everybody here had read Donald Knuth's monograph ;)--Tim32 (talk) 16:17, 23 February 2010 (UTC)Reply
PPS And we all use TeX by Knuth in Wiki (for mathematical expressions) :))--Tim32 (talk) 16:23, 23 February 2010 (UTC)Reply

The argument "C is common, Pascal isn't" is not compelling. Although it is true that C is a more common language than Pascal, Pascal is a very well established language with an intuitive syntax that is fairly close to pseudocode, and doesn't involve a lot of complicated variable declarations, incantations, etc. That argument goes the other way: just because C is more common does not mean that every article should be written just for C programmers. I'm sure that there is a very respectable number of programmers who never work with C, or languages syntactically derived from it, and so some effort must be made to accommodate all of these potential readers. As a sometime reader as well as editor, I often find C code to be full of unnecessary rubbish that detracts from the main point of an algorithm. It might be a suitable language to illustrate some of the inner workings of certain types of data structures, but it most certainly is not a language I would choose with which to describe algorithms. As for Java, I have three words for you: "public static void". Awful nonsense to be putting in an article. Also, I think MIX is a terrible idea in general and should be avoided. Sławomir Biały (talk) 20:17, 23 February 2010 (UTC)Reply

Just for clarification, as my post seems to have been incorrectly lumped into the "turf war" mentioned below, I do not advocate any particular language, and in fact generally favor pseudocode. However, I am strongly opposed to the position that C and its syntactic cousins are the clearest choices for an encyclopedia article because they are the most common. I heartily agree with David's post above and Ozob's below. Sławomir Biały (talk) 16:50, 24 February 2010 (UTC)Reply

I think it's quite clear here that Pascal and C-family languages are not neutral. It is the opinion of the people here who know Pascal that it is easy to read, and of C programmers the same for theirs. If either of these languages is favored over pseudocode, every person writing pseudocode for Wikipedia will have to know Pascal and how to test their program, as well as the algorithm-appropriate language they likely seek to provide in the first place. It biases the accessibility of the encyclopedia towards Pascal programmers, both in reading and editing. Pseudocode gets to the point of the procedure. Pseudocode is neutral. So let's not turn this into a language fight. The common language factor is not an attempt to establish a lingua franca. It is an illustration of how the pseudocode might be made concrete, expressed in rigid terms of a language. LokiClock (talk) 21:48, 23 February 2010 (UTC)Reply

I seem to recall reading somewhere that wikipedia did not have a fixed rule as to which language or flavour of pseudo-code to use in articles, that decision being left to individual article authors. I think that this is a good policy to follow, purely to avoid a protracted argument over languages.
BTW my own favourite is Structured English which I managed to introduce to a class programming newbies with ease. --Salix (talk): 22:00, 23 February 2010 (UTC)Reply
Comment: Imperative languages like C are and always have been a poor choice for clearly expressing mathematical function evaluation. If it's what you're used to there's little sense in learning a declarative language just to get your work done, but function evaluation is what declarative, functional languages are designed for - hence the name. Functional syntax is much closer to how a non-programmer competent with mathematics would naturally go about solving a problem. MATLAB, Python, Haskell and so on would be better choices for many articles. Actually, if there's a commonly accepted meta-language syntax of some sort that's used in the field of computational linguistics, that'd be my preferred choice. That'd require an expert in it to do the work, though. Sojourner001 (talk) 22:14, 23 February 2010 (UTC)Reply

It doesn't seem like there's any consensus to pick a single language. Certainly there is no consensus for either Pascal or for C or its derivatives. Some of the arguments given above apply more widely: For instance, if we standardize on a language, then we exclude everyone who isn't competent in that language. Even languages like Pascal and Python that are intended to be easily read will not make sense to someone who has never seen them before, and we can't ask our readers to sit down for a few hours and figure out how the languages are written before they come back and read our articles.

So, that leaves pseudocode. It's hard to write good pseudocode; after all, good pseudocode is a well-commented program with all the statements taken out. I don't think it's any easier to write legible, encyclopedic code in an actual programming language, because you then have to adapt yourself to the language's idiosyncrasies. If you can write a good, legible algorithm in a real programming language, then you can certainly distill it down to pseudocode. But it's very tempting to leave all the hard details out of pseudocode so that the "algorithm" isn't fully specified. That leaves us with broken articles, a very undesirable situation.

All of the above has been rather abstract. Let's get concrete. Consider a real classic, the recursive computation of the factorial. Here it is in C:

int factorial(int n) {
    if (n == 0)
        return 1;
    else
        return n * factorial(n - 1);
}

Notice that to understand this program, the reader needs to know what int stands for, that the int preceding factorial is a return type and that int n is a function argument, that curly braces are for grouping, that == stands for equality testing, and that return means output its argument. None of these are too difficult, but without them, the reader might be a little lost.

I've never seriously looked at Pascal, but I think this should work: (UPDATE: Better thanks to EmilJ; see below.)

function fact(n: integer): integer;
begin
    if n = 0 then
        fact := 1
    else
        fact := n * fact(n - 1)
end;

In order to understand this, the reader needs to know about := and needs to figure out the syntax for function arguments and the function's return type. He will probably think the semicolons are typos. (UPDATE: See JohnBlackburne's reply below.)

We could also write the program in Perl:

sub factorial ($) {
    my $n = shift;

    if ($n == 0) {
        return 1;
    } else {
        return $n * factorial($n - 1);
    }
}

This is probably even more confusing to the reader. What's sub? What do all the $s mean? What's shift?

We could try Python:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

This is better: You still need to figure out return and ==, which aren't too bad, and you may wonder about def, but at least factorial(n) looks like math notation.

Or we could pay homage to that system we use so much and write:

\catcode`@=11
\newcount\x
\newcount\n
\def\factorial#1{%
 \x=1
 \f@ctorial #1%
 \the\x}
\def\f@ctorial#1{%
 \ifnum#1>0
  \multiply\x by #1%
  \n=#1\advance\n by -1
  \f@ctorial\n
 \fi}
\catcode`@=12

There are obvious problems with expecting the uninitiated to read this. (UPDATE: See EmilJ's reply below.)

On the Haskell page, I found:

factorial 0 = 1
factorial n = n * factorial (n - 1)

which is as near to pure math as I think we can get. But this is sort of cheating, because Haskell is designed so that these kinds of things are easy. Even the type declaration, factorial :: Integer -> Integer, looks nice. The downside of this is that this definition is useless outside of a language which does pattern matching on its arguments like Haskell. It only works in Haskell, and there is no way to adapt it to any of the other languages.

There are corner cases, like COMEFROM, where no traditional programming language suitably expresses the underlying concept.

Which of these, if any, do people think would work best? My own vote is that we not standardize on anything. There should be a requirement that all code is clear, well-document, and encyclopedic. I think both pseudocode and actual programming languages can satisfy that, depending on the situation. We shouldn't limit ourselves; we should use whatever communicates best. Ozob (talk) 05:05, 24 February 2010 (UTC)Reply

  • "Pascal is a very well established language with an intuitive syntax that is fairly close to pseudocode, and doesn't involve a lot of complicated variable declarations, incantations, etc."
(Sławomir Biały)
Pascal:
Status := Status + [StickyFlag];
Status := Status - [StickyFlag];
C:
Status |= StickyFlag;
Status &= ~StickyFlag;
(Comparison of Pascal and C#Bitwise_operations)


const char * const authorName = "Scott Meyers"
(Scott Meyers, Effective C++, Chapter 1, rule 1.)
"First, since C++ includes C as a subset, it inherits many of the criticisms leveled at C. For its large feature set, it is criticized as being "bloated", over-complicated, and difficult to fully master." "...C++ is more complex than some other programming languages..."
Criticism of C++
  • Bad pseudocode example:
 L:=0; R:=N + 1;
   while (P:=(R - L)/2) > 0 do      %Integer division.
    case sign(A[P:=P + L].Key - X)
     -1:L:=P;          %A[P].Key < X.
      0:Return(P);     %A[P].Key = X.
     +1:R:=P;          %X < A[P].Key.
    esac;
   elihw;
   Return(-L);
"case sign(A[P:=P + L].Key - X) -- looks like too original to be understanded by any every reader!"
(Talk:Binary search algorithm#The_"Design"_section)
  • Conclusion.
1) C++ is over-complicated. It is very easy to write bad code (for algorithm description) in C.
2) A pseudocode may be unclear as well.
3) Pascal or Pascal-like pseudocode may be recommended for common cases.
4) Of course any good sources in C/C++ are welcome. For example, see: Robert Sedgewick, "Algorithms in C", Addison-Wesley.--Tim32 (talk) 08:22, 24 February 2010 (UTC)Reply

This discussion is rapidly headed nowhere. Recommending some particular programming language (as Tim32 is doing for Pascal above) is completely inappropriate for the manual of style. We can make general suggestions (pseudocode preferred to actual code, proprietary languages to be avoided) but I don't think we should go much beyond that, and it's highly non-constructive to repeat here all the old arguments about which programming language is best that have been gone over before countless times on countless internet forums. —David Eppstein (talk) 08:31, 24 February 2010 (UTC)Reply

Yes. Let's please get this back on track. However, the previous criticisms, particularly in Ozob's post, are still useful tips for writing good pseudocode; it can be easy to forget sometimes what parts of a language, in which you are fluent, need explaining. LokiClock (talk) 10:14, 24 February 2010 (UTC)Reply

I am disagreed with Eppstein's criticisms of this discussion. Of course, we unable to select the best language, but we have to recommend more confortable languages to describe an algorithm. As well as we have to note problems of pseudocode usage (see above). And also, in the result of this discussion we can agreed that good sources in every language or in pseudocode are welcome.--Tim32 (talk) 11:02, 24 February 2010 (UTC)Reply

I agree With David's criticism. The discussion could use some common sense and stick to what really matters to readers and authors instead of turning into turf war over specific languages & notations and "the best mandatory solution for all".--Kmhkmh (talk) 13:30, 24 February 2010 (UTC)Reply

I do not understand, where Kmhkmh did find a war? Dear Kmhkmh, did you read (Talk:Binary search algorithm), for example? Is it the war? Do you think that a lot of many discussions (which method to describe an algorithm should be selected) in different talk pages is better than this one here? And would you be so kind, Sir Kmhkmh, as to reread my post?: I wrote "recommend more comfortable languages", but you replaced this my offer with "the best mandatory solution for all"! Do you feel any difference? --Tim32 (talk) 15:59, 24 February 2010 (UTC)Reply

I am definitely in favor of only using pseudocode unless in a language context. With pseudocode if there is something which is not obvious one can rephrase it to be understood better. With a computer language the language constrains how things may be said and the restrictions are rather arbitrary. Editing for improved understanding requires knowledge of the language. Wikipedia is for transferring the idea not an implementation. Dmcq (talk) 17:57, 24 February 2010 (UTC)Reply
+1--Kmhkmh (talk) 19:07, 24 February 2010 (UTC)Reply
I agree that in the article proper there should only be pseudocode. However, there is nothing stopping us from making subpages under the article with vetted code examples. -- Avi (talk) 18:00, 24 February 2010 (UTC)Reply
I disagree: I think there is WP:NOT stopping us. Among the other things Wikipedia is not, it's also not a code repository. Any "subpage under the article" is an article itself and must meet our normal standards for inclusion as an article in Wikipedia. In particular, an article whose only purpose is to provide an original code implementation of an algorithm described elsewhere is not an acceptable Wikipedia article. —David Eppstein (talk) 21:30, 24 February 2010 (UTC)Reply

Make sure to bold your votes, if you're making them! Otherwise it can be difficult to tally. LokiClock (talk) 00:14, 25 February 2010 (UTC)Reply

"I disagree: I think there is WP:NOT stopping us. Among the other things Wikipedia is not, it's also not a code repository" -- I disagree: perhaps, Wiki is also not an algorithm repository? ;) --Tim32 (talk) 08:50, 25 February 2010 (UTC)Reply


edit

Another issue that we need to beware of is the copyright status of code. All the code that appears in a book or journal has a copyright that we are bound to respect, both by Wikipedia policy and the law. We can't reproduce Wirth's implementation of binary search because the book we're taking it from is still under copyright. Neither can we reproduce Knuth's implementation. Nor anyone else's. In fact, I can think of only one way to reproduce an implementation and not violate copyright, which is when the implementation has been released freely: For example, if we take our binary search from an open source library whose license is compatible with CC-BY-SA 3.0 and the GFDL. This is a pretty tough spot, because I'm sure that finding that sort of reference will be difficult for a lot of algorithms. But we are in violation of policy if we know that our reference is a copyright violation or is unsourceable.

Given that, perhaps it would be better to mandate pseudocode. Since pseudocode is English-language text, we don't have to reproduce it character-for-character from a source. Instead we can paraphrase the source, and not only is it irrelevant what language the source is in, but we would not violate copyright and also have an inline citation. (Of course, we need exceptions to this, for example because of articles on individual programming languages. I don't know how to phrase that well.) Ozob (talk) 04:19, 25 February 2010 (UTC)Reply

Are you sure about that? We cannot cut & paste the source code example in a book, but you quote snippets and or simply write that piece of code yourself (different variable names and such). There is no need for an identical letter by letter reproduction - not for regular text, not pseudocode and not real code. In other words you can treat all 3 cases the same and imho there should be no copyright issue providing the author works properly.--Kmhkmh (talk) 11:59, 25 February 2010 (UTC)Reply
Well, perhaps I was wrong to say "character-for-character" above. If you changed all the variable names then you would, if I understand the legal jargon correctly, have created a derived work. Derived works are still subject to copyright restrictions. Put another way, the problem is that if one makes only trivial changes to the code, then it is still the property of the original author, whereas if one makes non-trivial changes to the code, then the source the code was originally from can no longer be used for inline citations. It may be permissible to quote snippets as fair use (this is the same justification that we have for quoting other non-fiction books that are still in copyright), and the book may even explicitly permit quoting snippets in some contexts. Because of that it may be permissible to quote a whole algorithm. However, we would have to worry whether we are, across all of Wikipedia, quoting too much from that one book; we couldn't take a single book on algorithms and use it as a reference for every article about algorithms, nor could we take a single book on a specialized type of algorithm and use it as a reference for every article on that type of algorithm. (The exception, of course, being books whose algorithms are presented in pseudocode, because we can paraphrase those.) The easiest solution I can see is to prefer pseudocode whenever possible. Ozob (talk) 23:20, 25 February 2010 (UTC)Reply
I still don't see a difference between pseudo code and source code here, i.e. the issue is the same for both. Essentially I agree with JohnBlackburne's assessment below. Using copyright as an argument for pseudo code and against source code, seems to be as a rather artificial construction that doesn't hold in reality.--Kmhkmh (talk) 12:01, 26 February 2010 (UTC)Reply
The copyright concerns are the same as any other WP text, as are the general prohibitions against close paraphrasing. So an editor should not just copy and paste code, much as they should not copy and paste text, unless it's attributed and relevant. Which I can't imagine it will be in a maths article, so maybe just editors should never copy and paste code, they should always write it from scratch. If they don't understand it well enough to do so they should not be inserting it.
The only other concern might be if an algorithm that is covered by some other law: some algorithms are patented, others are outlawed by the DMCA, in which case it cannot even be written from scratch. I don't know what WPs policy is here, but I imagine it comes up so rarely and is so specific to particular instances that it's dealt with on a case by case basis. I.e. there's probably no need to worry about it.--JohnBlackburnewordsdeeds 00:24, 26 February 2010 (UTC)Reply
No problem: please, see Wikipedia:Citing sources--Tim32 (talk) 08:32, 26 February 2010 (UTC)Reply
My understanding is that it is implementations of an algorithm which may be covered by a patent, not the description of the algorithm. The concerns that are applicable are copyright, intellectual property, and security. Copyright is covered above pretty well. Intellectual property and security concerns cannot be ignored just because an algorithm has 'gone wild' in the public. If there are good citations in a book or suchlike though the wildness has probably got to the stage where the concerns are moot. Dmcq (talk) 12:10, 26 February 2010 (UTC)Reply

So, after looking at our articles on software patents, I can confidently say that this area of patent law is in flux right now as we speak, and nothing is certain. See In re Bilski for evidence of this. It appears (to my unlawerly and untrained eyes) that one cannot now patent an algorithm or a mathematical process; I don't think the RSA patent would have been granted under the present rules. (And, curiously enough, the RSA article says that RSA was invented independently by Clifford Cocks, who was doing classified cryptography research in Britain. If that had been publicly known, RSA wouldn't have been able to get a patent at all.)

According to U.S. copyright law, the definition of a copyrightable work is given in 17 USC §102(b) [1], which doesn't mention computer code explicitly. The principle of analytic dissection says that code is a copyright violation if, after removing all those parts which cannot be subject to copyright protection, what is left is substantially similar. My argument above was that all implementations of a particular algorithm would have to be substantially similar (by definition); but because an idea is uncopyrightable, what must be substantially similar is what you might call "the code modulo the idea of the algorithm". Thus, for example, if a block of code may be a copyright violation if it uses the same variable names and the same comments as another piece of code implementing the same algorithm; or if, every time there is some flexibility as to what order certain operations may be performed in, the two blocks of code being compared always perform the operations in the same order.

My conclusion, therefore, is that I think we're safe as long as we don't copy character-for-character. Of course, IANAL (but I play one on Wikipedia). Ozob (talk) 17:23, 27 February 2010 (UTC)Reply

Comments on programming language examples above

edit

I, Ozob, am reorganizing the comments on the programming language examples above, because the interleaved comments have made it impossible to tell who wrote what without having been here.

Responding to my C language example, JohnBlackburne wrote:

trivially the following is better (no need to know what == is and it won't do interesting to debug things with non-positive inputs). It's a bad example though: it's more an example of how recursion can be used. If I came across it in a code review I would rip it out and replace it with a simple loop as it's horribly inefficient and also unsafe, potentially causing stack overflows even with sensible inputs.--JohnBlackburnewordsdeeds 17:05, 24 February 2010 (UTC)Reply
int factorial(int n) {
    if (n > 1)
        return n * factorial(n - 1);
    else
        return 1;
}
I, Ozob, am now replying: The new code is incorrect in that it will return the wrong value for n less than zero. Of course, the old code is incorrect in that, as you say, it will cause a stack overflow for n less than zero. I also agree that nobody should use either one in production code. If it were up to me, I think I'd use a lookup table; there aren't that many valid inputs you can give before overflowing. Ozob (talk) 00:50, 25 February 2010 (UTC)Reply

Responding to my Pascal example above, EmilJ wrote:

It's not terribly important, but the brackets around n = 0 are superfluous, and so is the semicolon on the last but one line.—Emil J. 13:08, 24 February 2010 (UTC)Reply
I, Ozob, am now replying: I see. I have modified my original post to remove these. Ozob (talk) 00:50, 25 February 2010 (UTC)Reply

Responding to my TeX example above, EmilJ wrote:

(Sorry for intruding in the middle, but I couldn't figure out who wrote this post and where does it end.) I doubt that anyone would advocate to use TeX as the standard language on Wiki, but why is the example deliberately obfuscated with all those @'s? The following would do just fine:
\newcount\x
\newcount\n
\def\factorial#1{%
   \x=1
   \n=#1
   \dofactorial
   \the\x}
\def\dofactorial{%
   \ifnum\n>0
      \multiply \x \n
      \advance \n -1
      \dofactorial
   \fi}
(In other situations it would be also nice to put an \expandafter on the last but one line to make it tail-recursive, but it's pointless here since the factorial results in an arithmetical overflow anyway for n>12.)—Emil J. 13:08, 24 February 2010 (UTC)Reply
I, Ozob, am now replying: The @'s make it so that you don't pollute the global namespace. If someone wanted to make a table of factorials, they might want a \factorial function to perform each computation and a \dofactorial macro to make all the rows of the table. They would be surprised to find that you've already defined \dofactorial. \f@ctorial avoids this. In principle, you can still get this sort of bad interaction, but between packages or between a package and LaTeX or plain TeX itself. But if you prefix everything by something like mypkg@@ then you avoid even that.
In other respects, though, your code is better. I'm not a particularly good TeX programmer, and I cringe at \expandafter. Ozob (talk) 00:50, 25 February 2010 (UTC)Reply
(Now we are really getting off-topic.) Polluting namespace is a problem completely tangential to explaining snippets of code in a Wikipedia article, the reader is supposed to take care of such issues themselves if they decide to actually use the code. We are not writing a package. (Note by the way that \n and \x are much more likely to cause conflicts than the \dofactorial.) Furthermore, despite it being established as a sort of tradition, there are plenty of less convoluted ways of simulating namespaces in TeX macro names than using these @ signs (e.g., \mypkgMacroname). None of them is guaranteed to work, because they are not real namespaces: there is nothing stopping anybody to define a \f@ctorial macro conflicting with yours. The @ signs do not avoid anything, it's just a matter of reducing the likelihood that someone else also uses the same name. If \dofactorial seems too obvious, you can substitute it with \wikipediainternalfactorial, but there is no need to change \catcode's.—Emil J. 11:57, 25 February 2010 (UTC)Reply


Where is the exact disagreement now?

edit

The discussions seems to get sidetracked somewhat. Originally we started with something like:

For the description algorithms pseudo code is preferable, but code in a common/popular languages is permissible. The decision for a particular article is in doubt at the discretion of its author. The use of the syntaxhighlight tag is recommended.

Can't we all more or less agree on that?--Kmhkmh (talk) 12:08, 25 February 2010 (UTC)Reply

Support. But the grammar in your text needs to be fixed. —David

Eppstein (talk) 16:08, 25 February 2010 (UTC)Reply

Actually the line above was not meant as a literal text suggestion, but just to focus the discussion on an agreeable content, since we got somewhat sidetracked above.--Kmhkmh (talk) 19:41, 25 February 2010 (UTC)Reply
I originally proposed in particular we recommend C or something like it, but I see now there's no consensus for that or any language. Because of this I would change the above to make it clear that code is by far the worst choice. But also I would add that in a mathematics article that code or pseudocode is not a substitute for a proper mathematical description, which should always be there. Not only for readers without access to or knowledge of programming tools, but for other editors to improve or replace the code. So something like
  • Source code is allowed but:
  • It should not be used instead a clear mathematical description, which should always be present, and may be all that's needed
  • Pseudocode is much better than source code in a particular language which is likely only known by a subset of readers
  • Steer clear of powerful but obscure languages and language features which will only make the algorithm more difficult to follow
  • use syntax highlighting ...
I.e. not recommending any language, just a collection of things to consider with the emphasis on only using source if it really helps the article.--JohnBlackburnewordsdeeds 16:29, 25 February 2010 (UTC)Reply
sounds fine to me--Kmhkmh (talk) 20:04, 25 February 2010 (UTC)Reply
Support (Blackburne: Hope you don't mind that I redo your bullet indentations) – LokiClock (talk) 01:12, 4 March 2010 (UTC)Reply

There's no consensus for "Pseudocode is much better than source code in a particular language" etc. According to these rules we will have to rewrite almost all existed articles about algorithms -- it would be impossible absurd. --Tim32 (talk) 08:47, 26 February 2010 (UTC)Reply

Well there seems to be a clear preference for pseudo code at least (this is also not the first discussion of that sort). Nobody suggested to rewrite almost all the articles about algorithms containing nor do those rules imply that. The first line clearly states: source code is allowed. In addition this discussion is only about algorithms in math articles and not algorithms in general.--Kmhkmh (talk) 12:05, 26 February 2010 (UTC)Reply
But the 3rd line states: Pseudocode is much better than source code. What is "source code"? If for example, following fragment from Binary search algorithm is Pascal-like pseudocode:
  min := 1;
  max := N; {array size: var A : array [1..N] of integer}
  repeat
    mid := (min + max) div 2;
    if x > A[mid] then
      min := mid + 1
    else 
      max := mid - 1;
  until (A[mid] = x) or (min > max);
(Niklaus Wirth: Algorithms + Data Structures = Programs. Prentice-Hall, 1975),
then the consensus may be possible for the rule Pascal-like pseudocode (or well-designed C-like pseudocode) is much better than undefined pseudocode. --Tim32 (talk) 16:27, 26 February 2010 (UTC)Reply
PS BTW, Is Binary search algorithm math article? --Tim32 (talk) 16:33, 26 February 2010 (UTC)Reply
PPS Please see above "Bad pseudocode example" from talk page of Binary search algorithm. (the case of undefined pseudocode) --Tim32 (talk) 16:37, 26 February 2010 (UTC)Reply
That to me is a good example of why source code, or pseudocode that is essentially source code, should be discouraged: I have to stare at it for a non-trivial amount of time to see what it's doing, as it's a completely alien language to me. Other readers would have a similar reaction to C-like samples, while still others will be put off by any use of programming language elements.
Non-source based pseudocode might be something like
 Given a sorted list of numbers, to locate a value x in that list
  Find the midpoint of the list, halfway between the first and last elements
  Compare this to x
   If it is less than x then x must lie in the half of the list above the midpoint, 
   Otherwise it must be in the half of the list below the midpoint, 
  Repeat with the half-list x lies in as the new list
Continue until the midpoint equals x or the list has no length
Not tied to any particular language, so it could be implemented in any or carried out by hand. Perhaps a bad example as it is more a computing topic than a maths one, and readers of computing articles are likely to know at least some programming, but that's what I'm thinking of. --JohnBlackburnewordsdeeds 17:04, 26 February 2010 (UTC)Reply

@Tim32: I don't quite get what you are trying to argue. That you can write bad pseudocode? Obviously yes. That people should not write bad pseudocode?- Obviously yes again. I mean essentially that's just saying people should not write bad articles - of course they shouldn't. I don't really see there any relation in the pseudo code versus source code issue. Pseudo code only means that you don't have to stick to formal requirements of a particular programming language to describe an algorithm. Meaning you might use indices instead of arrays, that you can use various math operations or functions, without bothering about the exact name or whether it exists in some standard library. The primary intent of such an article is, that people understand how the algorithm works or as Johns has put it, that you can perform by hand or with pen and paper. The primary intent is not to be a substitute for numerical recipes or teach programming conventions/implementations. Having said that, personally I don't like John's example for the binary search better than the pascal pseudo code. Mainly because it is too close to a plain description as regular text of the article. In such a scenario I'd rather go with a text description of the algorithm and then provide the pseudo pascal code. As far as formulation for the guideline are concerned, I'd suggest to remove the "much better" by something less stronger like "preferable". Keep in mind we are looking for guideline that allows a large variety of authors to work comfortably and produce content being beneficial to readers. We are not looking for guideline reflecting what each of us individually might consider the optimal presentation. --Kmhkmh (talk) 17:49, 26 February 2010 (UTC)Reply

The problem with Pascal-like pseudocode is the same as with any other language specific example: it is only easily understandable if you know the language. Pascal in particular is little used outside academia and looks little like other languages, so has a particularly small potential audience. But the same is true of any language, hence my attempt to steer editors away from writing in any particular language.--JohnBlackburnewordsdeeds 18:30, 26 February 2010 (UTC)Reply
Pascal is not that widespread outside academia, but basically any programmer can read such code snippets. In fact math books do use them as well (in particular textbooks not numerical math). And again i don't quite agree with your premise of steering (or ultimately even forcing) editors in a particular direction. In doubt editors should be allowed to pick whatever they want, as long as it is common use and somewhat reasonable. For that matter many numerical math textbooks use pascal or algol like notations of algorithms, hence so can editors in here (for math articles).--Kmhkmh (talk) 19:12, 26 February 2010 (UTC)Reply
  • Kmhkmh wrote: “Tim32: I don't quite get what you are trying to argue. That you can write bad pseudocode?” – No, I’m not author of that bad pseudocode example. Please, see Talk:Binary search algorithm#The_"Design"_section for more info. JohnBlackburne wrote: “Find the midpoint of the list, halfway between the first and last elements” -- here he described the formula
 

Any formula may be described via such manner by natural language. For example, JohnBlackburne may try to describe FFT formula:

 

But we have special mathematical notation (formal language) for such case. Similar formal language is strong defined pseudocode based on suitable programming language (Pascal, C, MIX, etc.). These formal languages (mathematical notation and defined pseudocode) are preferable in non-trivial cases (FFT, for example). Kmhkmh wrote: “Meaning you might use indices instead of arrays, that you can use various math operations or functions, without bothering about the exact name or whether it exists in some standard library.“ Yes, it is right: you can write in pseudocode fragment the expression:

 

instead of

(x[1]+x[2]) /2

but defined statements (if-then-else, case, for-loop, while-loop, repeat-loop etc.) should be used from particular programming language. Oherwise we will have “case sign(A[P:=P + L].Key - X)” which “looks like too original to be understanded by every reader”! Standard Pascal is (1) strong defined programming language, (2) very simple language. As Kmhkmh wrote: “basically any programmer can read such code snippets”. C/C++ obviously may be used, too. But C++ is over-complicated (See Criticism of C++), so editor of an article has to spend additional efforts to provide C-like pseudocode readability. Fragments like

const char * const authorName = "Scott Meyers"

should be rejected. If some reader does not know modern mathematical notation or set theory or basical programming principles then it is problem of this reader. We need modern mathematical notation and set theory for mathematical articles, as well as we need strong defined pseudocode to describe algorithms in computer sci. articles.--Tim32 (talk) 09:12, 27 February 2010 (UTC)Reply

This discussion keeps coming back to how to write pseudocode, and other unrelated issues. For the last time, that is not the topic of discussion. If you want to seek to define good and allowable pseudocode, raise a discussion elsewhere. Let's assume for the purposes of this discussion that pseudocode means readable pseudocode that isn't biased towards one language. Judging readability or biasing of pseudocode is a tangent topic of discussion. Then my point of view is that using a particular language is not as accessible as such pseudocode, but more accessible than no implementation information at all. Pseudocode is a common language already, so an additional language would in most cases be redundant. It is on this logic that I am basing my opinion that pseudocode should be given with priority, and an appropriate language should be allowed as well. LokiClock (talk) 02:31, 3 March 2010 (UTC)Reply

  • "an appropriate language should be allowed as well" -ok, but the current example:
  primes = sieve [2..]
  sieve (p : xs) = p : sieve [x | x <- xs, x `mod` p > 0]

is not readable! Also the "common language already" (Pseudocode) from Sieve of Eratosthenes is:

  1. Create a list of consecutive integers from two to n: (2, 3, 4, ..., n),
  2. Initially, let p equal 2, the first prime number,
  3. While enumerating all multiples of p starting from p2, strike them off from the original list,
  4. Find the first number remaining on the list after p (it's the next prime); let p equal this number,
  5. Repeat steps 3 and 4 until p2 is greater than n.
  6. All the remaining numbers in the list are prime.

where step 5 looks like:

if p^2<=n then goto 3

What about structured programming without goto? It was introduced for readability! Here you try to return to Fortran-4. Another hard example for such pseudocode is Floyd–Warshall algorithm. But more sophisticated tasks are real as well. --Tim32 (talk) 19:09, 5 March 2010 (UTC)Reply

I added the Haskell. It was not meant to be a suggestion of what to use, as I made clear in the footnote. I thought a few days a go it needs an example, but didn't want to add my C one above as I thought some editors might not like it, and didn't want to add any Pascal for the reasons given above, so was on the look out for something very obscure. It's compact and one where the benefits of syntax colouring are obvious, but is a real example and interesting – if you're interested in obscure programming languages. --JohnBlackburnewordsdeeds 21:53, 5 March 2010 (UTC)Reply
That's why I originally argued that pseudocode should be required before an appropriate language, because the benefit to begin with is that with an appropriate language, it will be able to express the algorithm much more succinctly through it's own peculiarity (and therefore lack of common readability). ᛭ LokiClock (talk) 08:30, 6 March 2010 (UTC)Reply
This is an encyclopedic project with a rather heterogenous set of authors and not a programming 101 class, where some instructor might push his favoured programming style. That aside is "goto"-issue is to some degree a myth. Using "goto" in the example above is just a loop, i.e. essentially not different from while/,repeat..until or similar. The only real issue with "goto" is the so called Spaghetti code, i.e. if you use it for jumping all over the place. But if you essentially use to emulate/represent a common structural loop, there's hardly any issue with it at all.--Kmhkmh (talk) 11:38, 6 March 2010 (UTC)Reply
Yes. Like a language fight, an attempt to standardize the programming discipline of us editors is a Mac vs. PC argument. ᛭ LokiClock (talk) 12:10, 6 March 2010 (UTC)Reply
  • Very strange reasons, today the majority of modern programming languages (modern Fortrans, Pascal, C/C++, modern Basics etc) are based on structured programming conceptions: not only "if, for, while, repeat", but also "begin, end" (or {,} etc.). And the majority of modern books with algorithms descriptions and other sources (journal articles, Internet resources etc.) are based on structured programming as well. The fact is that today every wiki article has own original style for algorithm description and another article has different style. In discussed project we want to define common wiki standards for mathematical articles, so we have to recommend style standard for computer sci. wiki articles with algorithm description. The current stage of this section in the project is not good, this section is incomplete. In the result similar discussions will take place again and again in talk pages of computer sci. articles. --Tim32 (talk) 08:43, 7 March 2010 (UTC)Reply

Let me recompose my view

  • Firstly, an algorithm's implementation in an appropriate or common language should not preclude its implementation in pseudocode, and in turn a pseudocode implementation should not preclude a sound explanation of the algorithm.
  • Secondly, implementations in proprietary languages should not be allowed.

The first to define guidelines for the ideal content of the article, without condemning articles that do not already conform. The second to keep the encyclopedia free, both in the monetary sense, in the case of languages without free resources necessary for usage, and in the sense of independence, in that the languages rely upon the proprietor to maintain the resources required to make use of the information, making the content depending upon it unstable. ᛭ LokiClock (talk) 05:47, 18 March 2010 (UTC)Reply

While I agree with your first argument, I can't follow you with the second. Your argument concerning the "proprietor" makes no sense to me, not to mention that most languages in question do not have a particular proprietor to begin with. I'd rather regard any version (pseudocode or a common programming language) wich is common in literature as permissible in WP in doubt. The only real harm to WP is done, if we have editors constantly bickering about such things and forcing other editors to do it "their way", that's a recipe for losing authors and creating a bad climate. In project such as WP you have to accept that articles will not meet your personal expectation of an optimal article or style and as long as they fulfill certain minimal standards that's something people simply have to live with. From that perspective pseudocode and common languages are both ecceptable and any attempt to "outlaw" either is imho very misguided.--Kmhkmh (talk) 11:37, 18 March 2010 (UTC)Reply
The very issue that prompted this discussion is the use of MATLAB, a proprietary language which must be paid for to be used, in the article. This is not a matter of trying to force someone's way of doing things on someone. Also, I meant the accessibility of the information is made unstable. As soon as the proprietor ceases to maintain their code, the information becomes progressively useless. It's an infrastructure issue. ᛭ LokiClock (talk) 09:50, 19 March 2010 (UTC)Reply
Since much of the later discussion was about pseudocode versus pascal/modula/java/C/lisp/haskel and alike, I apparently misread your meaning of "proprietary software". As far as keeping matlab codes out of algorithm descriptions I tend to agree. However the issue with potential uselessness over time is not really a question of propriety or not, but more the popularity/spread of the software. It is true that the proprietary software such as matlab/maple/mathematica might fade away with their associated companies. However the same can happen with open source or free software, when they stop being actively maintained/extended. I'd be similarly skeptical towards using Octave or Maxima to notate algoritms.--Kmhkmh (talk) 14:51, 19 March 2010 (UTC)Reply
Ah, I see. You can't maintain backwards compatibility forever, so at some point, no matter how popular the software, you'll have to buy an old OS and/or computer system to run the software. With an open source project, on the other hand, the resources for recovering the build environment will be available, no matter whether the project is abandoned. A dead protocol is much more helpful than a dead and gone protocol. ᛭ LokiClock (talk) 15:14, 19 March 2010 (UTC)Reply
I agree, however that is mostly a theoretical possibility that doesn't really concern the (average) WP reader of the article. He is either somewhat likely to make use of the code/be able to read it, because it is common/widespread language (proprietary or not) or he isn't. The fact that an open source system could be revived/reused doesn't really concern him in most cases.--Kmhkmh (talk) 16:07, 19 March 2010 (UTC)Reply
It seems like I'm making an existential argument, because the point is that utilization is possible in even the worst case scenario, but the same factors make another difference because the language is more likely to remain accessible long past its initial popularity by way of independent interest. We have a window as great as the lifetime of the information for noticing that the language is no longer popular and developing a substitute, compared to the lifetime of the software and hardware compatible with the final release. If you still disagree, a more conservative prohibition on languages without free (in both senses) usage will still address the original concern. Otherwise, this is off the subject of my second view and back into the first. Of course commonness is beneficial, but you have to make a tradeoff, in most cases, when selecting a language appropriate for the algorithm. Assuming there's pseudocode and a good explanation of the algorithm, a common language implementation is more or less icing on the cake. But without those things, an appropriate language does not constitute adequate coverage of the algorithm's implementation, whence the first statement. So I personally would not object to an Octave implementation, but including only that is just better than no information on the algorithm at all, and both an appropriate and common language implementation again only just better. ᛭ LokiClock (talk) 16:45, 19 March 2010 (UTC)Reply

Technical problem for pseudocode syntax highlighting

edit

For Pascal source:

if p^2<n then goto 3

better Pascal-like pseudocode would be:

if p2<n then goto 3

but there is no “exception” tag to insert math formula into source code. We need such tag to write readable pseudocode!--Tim32 (talk) 09:03, 7 March 2010 (UTC)Reply

HTML or CSS formatting I agree with, but not for LaTeX. The former two cover ubiquitous, linear mathematical conventions such as sub/superscripts, but once you get into the freedoms of LaTeX, such as dividend-vinculum-divisor notation, you're leaving visual sugar territory for indiscrete mathematical concepts (that is, if you need LaTeX, it's not likely simple enough for a computer to parse), and eliminating the syntactic structuring of an average computer language that separates it from mathematical notation. ᛭ LokiClock (talk) 08:24, 15 March 2010 (UTC)Reply
But pseudocode is not for a computer to parse, it is for reading by man only!--Tim32 (talk) 09:11, 16 March 2010 (UTC)Reply
If you find pseudocode (or source code) unreadable then don't use it. The guideline is not encouraging you to use pseudocode, it was added as pseudocode is already used in many mathematics articles, to suggest some guidelines so it is used and presented as well as possible. I would say an ideal mathematics article has no pseudocode as there will always be readers who have little or no programming experience and will skip straight over it, and almost always an algorithm can be better expressed in some other way, using e.g. text and LaTeX formatted formulae. --JohnBlackburnewordsdeeds 11:27, 16 March 2010 (UTC)Reply
Ideal computer sci. article about non-trivial algorithm should use pseudocode! The majority of computer sci. books and journals use pseudocode and so we have to use pseudocode as well. Otherwise it would be original research. Sorry, colleagues, but today every mathematican must know programming languages. --Tim32 (talk) 10:16, 17 March 2010 (UTC)Reply
Not so: I did a degree in mathematics which involved no computing - it was an optional module which I did not do. I taught myself how to program around a formal maths education. At a less advanced level maths courses generally involve no computing, and that is the level most articles should be written for. And this is the MOS for maths not computer-science. Mathematics texts generally avoid source code: they give the formulae then use worked examples and exercises.--JohnBlackburnewordsdeeds 10:32, 17 March 2010 (UTC)Reply
Did you the degree today?--Tim32 (talk) 10:40, 17 March 2010 (UTC)Reply
I know someone who got a math PhD about a year ago who has zero programming experience. He doesn't even know what the XOR operator is. Pure (as opposed to applied) mathematicians almost never program. Ozob (talk) 11:00, 17 March 2010 (UTC)Reply
Perhaps, somebody did a degree in mathematics which involved no set theory. And so, today he says: “mathematical articles generally avoid set theory, do not use it whenever possible.” I think it would be absurd reason. If any university does not involve programming courses then this does not mean that we should take this strange fact into account. I’m sure that if a person does not know what Boolean functions (and, or, xor etc.) are, then he is unable to write good article about an algorithm!--Tim32 (talk) 11:13, 17 March 2010 (UTC)Reply
PS Vladimir Arnold wrote that even in USA he observed some students who had written “1/2+1/3=(1+1)/(2+3)=2/5”--Tim32 (talk) 11:27, 17 March 2010 (UTC)Reply
Mathematics texts often don't include computer algorithms due to a limit of scope, not because it's not important or helpful to do so. This is an encyclopedia, thus it should cover the subject in the terms of all of the fields in which the knowledge is relevant. Mathematics itself is often viewed from a strictly applied perspective; that is, as the toolbox of a programmer. It's not our job to decide whether we should cater to pure or applied mathematicians of either extreme. We should instead recognize that there are people who need the information with different sets of prerequisite knowledge that should be expected of them for understanding of the article. Consider also accessibility for people with a mottled set of knowledge (Beta distribution, anybody?), who will then only need to know enough of either set of knowledge to understand the concept. ᛭ LokiClock (talk) 05:34, 18 March 2010 (UTC)Reply

Previous discussion from Wikiproject Computer Science

edit

I thought it might be worth pointing out that this issue has come up before several times. It gets heated, often with language proponents suggesting their language is actually ideal, or better known, or perfectly adequate, or what have you. Ultimately the best answers I've seen amount to pseudocode being the best choice as it is the most accessible to the widest audience. Of course that ideally involves standardising pseudocode, which is a recipe for disaster in and of itself. You can read User:Dcoetzee/Wikicode for an archived copy of an abandoned effort along those lines. At Wikiproject Computer Science the eventual decision was to go with some rough guidelines to help constrain pseudocode. Indeed, I think the eventual results there are pretty good: Wikipedia:WikiProject_Computer_science/Manual_of_style_(computer_science)#Algorithms. I should also point out that the recommendations there are actual code is really suitable only to give samples of the language on, for example, pages about the language. I won't comment further, having already been through all these arguments once, except to say: good luck; I hope you can come to a reasonable consensus. -- Leland McInnes (talk) 23:14, 16 March 2010 (UTC)Reply

"Within this WikiProject, the consensus has generally been that where possible algorithms should be presented in pseudocode."(Wikipedia:WikiProject_Computer_science/Manual_of_style_(computer_science)#Algorithms) Very worth link! Thank you! Or somebody here thinks that computer science is not mathematical area? ;-) --Tim32 (talk) 10:26, 17 March 2010 (UTC)Reply
Actually, we've established that computer science is not a mathematical area. Just look at Talk:Gödel's incompleteness theorems, where the discussion makes it clear that mathematicians and computer scientists mean something completely different. — Arthur Rubin (talk) 02:57, 1 April 2010 (UTC)Reply
There is Mathematics#Theoretical_computer_science in Mathematics#Fields_of_mathematics section. So, "computer science is not a mathematical area", but theoretical computer science is a mathematical area ;-)--Tim32 (talk) 09:41, 1 April 2010 (UTC)Reply
At the same time, I am agree with Arthur Rubin: computer science (and, particularly, theoretical computer science) is not a mathematical area. Because in contrast with classical mathematics the computer science is experimental science (Allen Newell and Herbert Simon said this in their 1975 ACM Turing Award -- "Computer Science as Empirical Inquiry: Symbols and Search", Communications of the ACM, 1976, 19(3), 113).--Tim32 (talk) 09:51, 1 April 2010 (UTC)Reply
It seems that Mathematics article should be corrected!--Tim32 (talk) 09:53, 1 April 2010 (UTC)Reply
And here we should write that algorithms are not mathematical objects, but computer science objects, so see Manual_of_style_(computer_science)#Algorithms.--Tim32 (talk) 10:01, 1 April 2010 (UTC)Reply
Experimentation is not in contrast with "classical mathematics." If the rest of mathematics wasn't experimental, nothing would have grown out of it or will grow out of it. This Pure vs. Applied feuding is laughable. This is like listening to a classical music fan try and argue that hip hop isn't music. Why do people want so badly to write the other end of the spectrum from their preferences out of the picture? Rubin, you did not link to the section in which you claim that the body of editors have clearly decided that computer scientists are not mathematicians. And even if there was a consensus in that talk page, the talk page for that article's subject should not determine whether a different subject should be considered of the same vast category as it. You do not decide whether Wikipedia considers Calculus a mathematical field in the article for the parallel postulate. If you want to "correct" the Mathematics article and this manual of style, you should look for more than two people's opinions on a controversial subject, and in a more appropriate place. ᛭ LokiClock (talk) 02:38, 6 April 2010 (UTC)Reply
Mathematicians use abstractions and logical reasoning, experimenters use observations and real objects testing. See Mathematics, Experiment.--Tim32 (talk) 09:53, 7 April 2010 (UTC)Reply
And no true scotsman would come to a theoretical conclusion by rigorous representation of his experimental observations, so Joseph Fourier is only a physicist and the Fourier Transform has nothing to do with mathematics at all. Experimentation and abstract thinking are not mutually exclusive acts, and doing one does not mean you can be in isolation of the other. All mathematicians and scientists employ a bit of both, and those don't make you one or the other. Being able to write a format argument does not make you a logician, because you aren't experimenting with the process of the logical formalism, and you aren't changing the abstract object of study (logic itself) in any way. ᛭ LokiClock (talk) 06:20, 9 April 2010 (UTC)Reply
Joseph Fourier was a mathematician and physicist: it is possible to combine mathematical methods and experimental methods. But Fourier died in 1830. Today many mathematicians are isolated in abstract approach only. Morris Kline wrote about this problem in his book "Mathematics. The Loss of Certainty." New York, Oxford University Press, 1980. --Tim32 (talk) 08:13, 10 April 2010 (UTC)Reply
Not by definition. Even as you use it, it's framed as a problem with the average modern mathematician. And it's not a combination of mathematical and experimental methods, it's a combination of abstract reasoning and experimental deduction in mathematics and physics. Experimentation or abstract reasoning does not qualify you as either. We're off the subject by now, though. Computers themselves are mathematical contraptions, and constructs. They exist because of boolean logic, signal processing, the mechanics of binary numbers, formal language. They were created, and still exist, to compute mathematical functions, i.e. to model and process mathematics in the stead of humans. Moreover, in building them we have created a larger mathematical structure, worthy of study in and of itself, and in studying it we develop new ideas about the rest of mathematics from the perspective of the theoretical construct. ᛭ LokiClock (talk) 01:09, 12 April 2010 (UTC)Reply
Real computer is not mathematical model, but Turing machine, for example, is… Turing machine may be emulated in real computer, but classical mathematics does not need such emulation. "They exist because of boolean logic, signal processing," – Yes, as well as accountancy exists because of Boolean logic, etc. Classical pure mathematics uses abstract reasoning, and computer is not necessary for this. Today many mathematicians use computer as typewriter tool to submit a paper to a journal only. --Tim32 (talk) 08:39, 12 April 2010 (UTC)Reply

Fractions

edit

I was looking for a guideline regarding fractions, but didn't find one. So here's my question: if using HTML, should we write 1/2 or 12 (using {{frac}}) or even ½? —bender235 (talk) 14:40, 31 March 2010 (UTC)Reply

I think 12. ½ is definitely wrong, as there are only a few characters like that, so if used with other fractions the formatting would be inconsistent. 1/2 is what you do when typing a fraction and you don't have access to formatting. Not only do you have access to HTML formatting but there's a template to make it easy.
The only exception is  , using the LaTeX renderer. Personally I try and avoid using it for inline formulae, but there may be an occasional need.--JohnBlackburnewordsdeeds 15:46, 31 March 2010 (UTC)Reply
This 12 is not limited to certain characters. You could also write 4372123, see Template:Frac/doc. --bender235 (talk) 16:59, 31 March 2010 (UTC)Reply
You misunderstood me. ½ is a unicode character, as are ⅓, ⅔, ¼, ¾, ⅕, ⅖, ⅗, ⅘, ⅙, ⅚, ⅛, ⅜, ⅝ and ⅞. Those are all of them (that I can find). If you want to represent a seventh, three tenths or one over pi there is not such character, and you have to do it in a way which will look different.--JohnBlackburnewordsdeeds 17:37, 31 March 2010 (UTC)Reply
Okay, I got it now. ;-) --bender235 (talk) 17:42, 31 March 2010 (UTC)Reply
That there is only a limited selection of Unicode fractions available is no problem, since these kinds of fractions are only used in limited contexts where the list more than suffices. One rarely, if ever, needs to write 1/7 or 3/10 as a fraction in a non-mathematical context, and certainly not one over pi. That ½ looks inconsistent with 12 is an error of the template, not of the Unicode character, whose appearance follows standard typographical practice.—Emil J. 17:59, 31 March 2010 (UTC)Reply
In mathematical context, it's definitely 1/2. The shifted fractions are never ever used in professional mathematical typesetting: the only notations employed are 1/2 and   (or actually   outside displayed formulas, as here). You can use ½ for cooking recipes (take 1½ cups of flour ...) and similar kind of measurements, but not for mathematics. I can't imagine any situation where 12 would be appropriate, let alone the fact that it looks pretty ugly.—Emil J. 15:53, 31 March 2010 (UTC)Reply
Well, in my opinion 1/2 looks pretty ugly. But   would be a good-looking compromise. --bender235 (talk) 17:01, 31 March 2010 (UTC)Reply
template:frac is used here on thousands of pages: see Special:WhatLinksHere/Template:Frac. As for mathematical typesetting one tends to use TeX but then one's using TeX for everything, so there's not the problem encountered here with TeX mismatching the HTML around it.--JohnBlackburnewordsdeeds 17:37, 31 March 2010 (UTC)Reply
There's no TeX needed for 1/2, and even if it were that's no reason to invent notation unheard of outside Wikipedia. I am perfectly aware that the template is used on many Wikipedia pages, and I hope that now that the problem has been raised here, maybe something will be done about it finally.—Emil J. 17:59, 31 March 2010 (UTC)Reply

For some context, see the recent edit history to Riemann hypothesis, and also a brief discussion on my talk page. My position is exactly what EmilJ stated above. —David Eppstein (talk) 17:03, 31 March 2010 (UTC)Reply

As I see it there are two reasons to prefer 12 over 1/2. First it looks better: entirely subjective but someone created and then many people used the template without being prompted: I've never seen a guideline about it and only started using it because I saw it on a page. The other reason partly explains why it's used more outside of mathematics: it's the only way to do mixed numbers such as 3+17. Written like 1/2 it looks like 31/7, unless you introduce a typographically incorrect space, and wrap it in template:nowrap to stop it breaking, to finally get 3 1/7. A lot of the current uses are in conversion templates, converting e.g. metric to imperial measurements for use in infoboxes, in a better looking way than decimals.--JohnBlackburnewordsdeeds 18:11, 31 March 2010 (UTC)Reply
I prefer 3  to 3+17, but for mixed fractions and common weights and measures I think {{frac}} can be ok. I don't want to see it in articles about research mathematics, though. —David Eppstein (talk) 18:36, 31 March 2010 (UTC)Reply
And do you prefer   over 1/2 as well? —bender235 (talk) 19:22, 31 March 2010 (UTC)Reply
I prefer both of those over 12. Whether to use   or 1/2 depends on context. —David Eppstein (talk) 19:27, 31 March 2010 (UTC)Reply
Okay. I prefer   and 12 over 1/2, because 1/2 is just ugly and misleading. Anyway, I hope we'll have some sort of guideline regarding fractions at the end of the day. --bender235 (talk) 19:37, 31 March 2010 (UTC)Reply
I noticed that a section had been added on this coming down on one side of the frac vs. slash debate, which we're not agreed on that I can see, and ignoring the one thing I think we can agree on about unicode, so I've updated appropriately.--JohnBlackburnewordsdeeds 22:03, 31 March 2010 (UTC)Reply
I prefer  . The use of 1/2 is ugly, but unambiguous, since everybody can see the relationship to what's typed. I can see the point in 12, but I wouldn't like to see it in mathematics articles, where it would get confused with superscripts and subscripts. -- Radagast3 (talk) 22:45, 31 March 2010 (UTC)Reply

Here is how TeX renders an inline (not displayed) fraction:  . I prefer for us to match that, by using "1/2" when we write in plain text. This is the usual style of mathematical typesetting. Based on my reading of style guides and typesetting books, things like 12 are used only in non-mathematical contexts, e.g. novels. I view them as a quaint anachronism, like old-style figures. Given that this is the manual of style for mathematics articles, not literature articles, I would not like to see it recommend 12. — Carl (CBM · talk) 22:50, 31 March 2010 (UTC)Reply

I have to admit that I did see one technical paper today that used raised-number slash lowered-number to indicate a fraction, in an exponent, something like   So saying it's never used is an overstatement. My reaction to it was the same as when I see it here, though: that's ugly and I wish the authors wouldn't do it. —David Eppstein (talk) 23:31, 31 March 2010 (UTC)Reply
I have to admit I cannot tell whether the epsilon is in the denominator of the fraction there.... — Carl (CBM · talk) 00:19, 1 April 2010 (UTC)Reply
Yes, that's another good reason not to use this style. —David Eppstein (talk) 03:28, 1 April 2010 (UTC)Reply
In good mathematical typesetting, fractions in exponents are usually written with a slashed form, like  , not as a double-decker fraction, like  . The slashed form is also typical in similar situations, such as fractions that themselves appear in the numerator or denominator of a fraction. See also Chapter 17 of the TeXbook. —Bkell (talk) 05:03, 1 April 2010 (UTC)Reply
Getting arcane here but there's a Unicode symbol for division, the Mapping of Unicode characters#Fraction slash. Here's it is, compared to the usual one, both in default and example text format: 1/2 = 1⁄2 & 1/2 = 1⁄2. There are others in Unicode but this one seems intended for use in fractions.—Preceding unsigned comment added by JohnBlackburne (talkcontribs) 14:10, 1 April 2010 (UTC)Reply
As explained in detail in the very section you linked to, the Unicode character ⁄ (U+2044 FRACTION SLASH) is a special-purpose device which is supposed to automagically combine with adjacent digits to form ½-like fractions, if the rendering technology supports it. It is therefore wrong to use it for 1/2-like fractions in contexts where these are not supposed to turn into ½. For exactly the same reason, it also looks bad (when not combined as mentioned), because it is too slanted (in fonts where it looks differently from /). I don't see a need to use anything other than the ASCII / (U+002F SOLIDUS) for 1/2-like fractions as it is a nearly universal convention to do so, but in any case the correct replacement would not be the above mentioned fraction slash, but ∕ (U+2215 DIVISION SLASH): 1∕2. (I note that it also looks too slanted in the font I happen to see here.)—Emil J. 17:38, 2 April 2010 (UTC)Reply
I looked at this comment in four different OS X browsers (Safari, Camino, Firefox, and Chrome). The division slash looked almost the same as a normal ascii slash in Safari and Chrome, but horrible in Camino and Firefox, worse than any of the other slashes. Not only is it too slanted but it's also too big, maybe twice the normal line height. I think we should just stick to a normal ascii slash. —David Eppstein (talk) 18:07, 2 April 2010 (UTC)Reply
Yes, I think it's more a curiosity. First it is different, but how varies by font: there's no consistency and certainly nothing that to me says it would be more use in division. The main thing is it seems to be zero width, so in theory better for putting things either side of, but in practice I don't think we have any problems as it is. It's special behaviour I was only able to get by switching to Apple Chancery and trying it in TextEdit. There it half worked, in that it made any denominator (any string of chars flush with it, to the next space) smaller on the fly, but not the numerator. So it's really something that needs to be done in HTML. It's only benefit might be for screen readers, which might be better able to tell it apart from a normal slash, much like using a minus sign instead of a dash.--JohnBlackburnewordsdeeds 18:24, 2 April 2010 (UTC)Reply

Poll

edit

Since David Eppstein and me disagree on what is "consensus" here, let's find out.

Proposal #1

Recommend the use of   in general, and condone the use of 12 in non-mathematical context. Discourage the use of 1/2 and ½.

Proposal #2

Recommend the use of   in general, and condone the use of 1/2 in non-mathematical context. Discourage the use of 12 and ½.

Proposal #3

Advise that  , 12 and 1/2 are all acceptable. Advise against the use of ½.

Proposal #4

Recommend the use of   and 1/2 in mathematical context, and discourage the use of 12 and ½ in mathematical context. Leave non-mathematical context unregulated.

  •   Pro I would actually like to see the god-awful abomination of 12 gone for good, or at least fixed so that it does not stick out of the line and uses a decent kerning (i.e., to make it look like ½) so that it conforms to reasonable typographical standards, but that looks like a too big a fish to fry ATM.—Emil J. 10:43, 1 April 2010 (UTC)Reply
I just had a go at fixing it – 1π, 12, 1+23 – by copying {{frac}} wrapping HTML small tags around the fraction part. It seems to work, i.e. it makes the fraction small enough that it does not obviously break kerning, at an cost in readability but it is possible. I don't think we want to modify {{frac}} as it's so widely used, but a second template would be OK: there are multiple fraction and subscript ones already.--JohnBlackburnewordsdeeds 11:04, 1 April 2010 (UTC)Reply
This looks better, but it still sticks out of the line. In 1+23, the top of 2 should not (significantly) exceed the top of 1, and the bottom of 3 should not descend below the bottom of 1, cf. 1⅔.—Emil J. 12:07, 1 April 2010 (UTC)Reply
Just wondering, but why is it that Wikipedia:Manual of Style (mathematics)#Multiplication sign explicitly says "Do not use the letter x as a substitute for ×", but on the other hand we allow people to use slash as a substitute for solidus? --bender235 (talk) 14:27, 1 April 2010 (UTC)Reply
I would say because fonts vary more on how they display x. Compare x and ×. Now compare / and /. Also for general division there's ÷ which is impossible to confuse with anything else.--JohnBlackburnewordsdeeds 14:39, 1 April 2010 (UTC)Reply
I agree there. As a pedant, I'm all for using solidus rather than slash for fractions, but unlike times, they just don't look different in most fonts. I wouldn't oppose someone "fixing" such slashes, but really, their time would be better spent on other things. —Ben FrantzDale (talk) 15:07, 2 April 2010 (UTC)Reply
  •   Pro Seems appropriate. I do admit that, working in the cyclic number fiasco, 20199 would be difficult to avoid, but it probably should be  , even if it produces alignment problems. Contrary to Bender235's objection to 1/2, I see no objection to its use as a standalone number in mathematics articles. It's only a problem if as part of an inline formula. His edit to Reimann Hypothesis is ugly. — Arthur Rubin (talk) 14:58, 1 April 2010 (UTC)Reply
  •   Pro This one gets my !vote. Gandalf61 (talk) 15:02, 1 April 2010 (UTC)Reply
  •   Pro This is the standard for fractions in all mathematical discourse, and should therefore be the standard in Wikipedia mathematics articles as well. Jim (talk) 15:07, 1 April 2010 (UTC)Reply
  •   Pro We definitely need both 1/2 and  ; for instance, the slashed form should be used in an exponent, a subscript, or in a formula that's part of a bigger fraction. —David Eppstein (talk) 15:09, 1 April 2010 (UTC)Reply
  •   Pro First, this manual of style should not provide guidance out of its scope, so I oppose proposals 1-3 which give non-mathematical recommendations. Within a mathematical context, I support  ,  , and 1/2 while opposing 12 and ½. Obviously within the preferred styles there are times when one form is better than another:   should almost never be used inline (as I just used it), for example. CRGreathouse (t | c) 19:43, 1 April 2010 (UTC)Reply
  •   Pro This is consistent with the notation used in "the literature". Jwesley78 19:24, 2 April 2010 (UTC)Reply
  •   Question: This proposal seems to make no distinction between the usage of   and "1/2". There are situations where one should be preferred over the other. (Perhaps this would be a separate issue/proposal?) That is, one should use   for coefficients or alone, but for superscript/subscripts one should generally use 1/2. I find using "1/2" alone or as a coefficient, almost (but not quite) as egregious as using 12. Jwesley78 19:24, 2 April 2010 (UTC)Reply
Proposal #5

Leave the decision to (main) authors working on the concerned articles and find something else to argue.

Then why have a Manual of Style at all? Why not leave every decision to authors, resulting in 3.2 million articles with 3.2 million different styles. --bender235 (talk) 11:37, 1 April 2010 (UTC)Reply
Not every decision, just this one. See WP:CREEP. While I don't really agree with Kmhkmh, he has a valid point.—Emil J. 12:11, 1 April 2010 (UTC)Reply
The issue at hand is not the MOS itself but a rather special subitem of it, which imho requires no regulation. There is no question that we need a few ground rules and hence a MOS. There is however a question of how extensive this MOS is supposed to be. Regarding that issue I personally prefer a rather lean MOS, that sticks to the really important things. A very extensive MOS (as part of even much larger system of guidelines) is imho somewhat of a deterrence for (future) editors. Also there is a certain risk that we start to develop guidelines for its own sake rather than to deal "real" issues. Moreover if we (often) have a very few people devising some very specialized guidelines, then it might not be at all clear whether they actually represent some larger consensus (the ratio of (semi)active math authors and the people that will participate in this poll might provide some pointers to that regard).--Kmhkmh (talk) 12:17, 1 April 2010 (UTC)Reply
Okay, you've got a point. But then again we have recommendations like using × instead of x as multiplication sign, and dozens of other guidelines on those small items. Those aren't exactly rules that aren't allowed to be broken (like WP:NPOV or WP:V), but suggestions. I think there should be a section Wikipedia:Manual of Style (mathematics)#Fractions, telling people how fractions should be displayed in Wikipedia, even if it was only for those editors (and I was one of them) who did not know about {{Frac}}. --bender235 (talk) 12:36, 1 April 2010 (UTC)Reply
But this guideline is about mathematics articles, and the frac template generally should not be used in mathematics articles. As this page already says, the general advice for non-matheamtical articles is at Wikipedia:Manual_of_Style_(dates_and_numbers)#Fractions, which does mention the frac template. — Carl (CBM · talk) 13:18, 1 April 2010 (UTC)Reply
Okay, so let's add a guideline that says "Use   to display fractions (in mathematical articles)". Just make sure we don't encourage the use of 1/2, because it is ugly and error-prone (e.g. does 1/2t mean   or  ?) --bender235 (talk) 13:51, 1 April 2010 (UTC)Reply
Problems that I still have with that are:
  • a) "ugly" is somewhat fuzzy term and very much in the eye of the beholder.
  • b) In Latex you can produce all of the suggested versions (even more or less with "default" formatting) and you can find all versions in (math) literature depending on the exact context (things like text style, display style, appearance in exponents, indices, numerators, denominators, etc.)
  • c) Does it really matter for the quality of an article which version a particular author has used? Is it really wirth quarreling about it?
  • d) 1/2t imho can be only read as  , whereas   would be 1/(2t)
    • To my mind 1/2t can only be read as a mistake. It should be either t/2 or 1/(2t). And 1/2t is even more of a mistake because the variable should be italicized. But this is irrelevant: the ability to misuse a notation is not a reason to ban its legitimate uses. —David Eppstein (talk) 17:28, 1 April 2010 (UTC)Reply
  • e) The 1/2 style is essentially something I'd call "ascii math notation". There a few contexts, where such notation might be considered useful or natural despite its potential ugliness. Namely article subjects where ascii math is used such as various math software, calculators, programming and algorithmic descriptions, etc.
  • f) Regarding WP:CREEP. I can understand people having personal preferences regarding the notation of a particular fraction and so do I. However I can't honestly say any of them is "so bad" that I see a justified need to "forbid" them, so consequentially I see no good reason for additional regulation here. As partially already mentioned before: All versions are found in literature and all versions are easily understood by readers (if properly used).
--Kmhkmh (talk) 15:03, 1 April 2010 (UTC)Reply
Observation

It seems like the above discussion isn't separating some important concerns:

  1. What versions of inline fractions are acceptable at all? (Case fractions like ½ versus inline like 1/2 versus stacked  .)
  2. What versions are appropriate in what context? (e.g., mathematics rarely if ever uses case fractions.)
  3. What are acceptable displays? (Plain text like 1/2 versus extended characters like ½ versus fancy HTML like 12 versus LaTeX-generated images like   versus fancy Unicode tricks.
  4. What is feasible to generate with a template?

Personally, I find the {{frac}} template ghastly, typographically. However, making the denominator doubly <small> rather than <sub> helps a lot: 100200 rather than 100200. To my eye, that first version seems competative with the case fraction symbol while still be extensible beyond the existing case-fraction symbols (compare 12 ½).

  • Considering 1. above, it seems all three versions have their place. Stacked fractions in some mathematical contexts, case fractions in cooking, for example, and 1/2 is fairly common (I could see trying to prefer case fractions, but suspect it is the Right Way in some contexts and so shouldn't be forbidden.)
  • Regarding 2. above, this seems like something that can't be prescribed universally; individual fields have their conventions.
  • As for 3. above, stacked fractions can only be done as an image (unless there is crazy HTML or Unicode voodo magic to do it), so images have to be acceptable. As for the others, most browsers support either the HTML or the case fraction, so 3. seems like mostly a non-issue.
  • Regarding 4., feasibility of a template, case fraction symbols are the odd one out as they can't be made for arbitrary fractions, and even choosing among the existing set is tricky at best (are templates Turing-complete?)

With all that in mind, it looks like most commeters agree that the giant   is out and many dislike the existing HTML-built case fractions, but I think my version looks pretty darn good. How about this proposal for inline fractions:

  • Change any inline   to  .
  • Change {{frac}} to produce 12.
  • Either case fractions or 12 (generated with the tmplate) are acceptable.
  • Prefer case fractions to full-sized fractions such as 1/2 and to stacked fractions, but only when appropriate in context.

Would that answer everyone's concerns? —Ben FrantzDale (talk) 15:07, 2 April 2010 (UTC)Reply

I don't think that has consensus at all. The comments above almost universally oppose {{frac}}. My thoughts:
  • I oppose any version of a fraction template which uses <big> or <small>: the former has been dropped from HTML5, while the latter has semantic meaning not shared by fractions.
  • I weakly oppose the use of a fraction template on typographic grounds.
  • I oppose the use of precomposed fractions (which you are calling case fractions, though the article you link to calls special fractions) in mathematical contexts.
CRGreathouse (t | c) 17:09, 2 April 2010 (UTC)Reply
We may not disagree that much.
  • I am all for pedantic reading of HTML5 standards; I'm sure it has some way to get what I got above.
  • Do you oppose the idea of using a template for fractions or do you oppose the content it produces? That is, If {{frac}} produced  , would that be OK with you? To me it seems easier to maintain a wiki-wide style with {{frac}} and that should be orthogonal to how the fractions are displayed.
  • I am also generally opposed to case/composed fractions in mathematcis for reasons of ambiguity (although I think some simple cases such as x½ looks nicer than x1/2, with no loss of clarity).
Am I missing something else? —Ben FrantzDale (talk) 18:20, 2 April 2010 (UTC)Reply
One objection, but quite strong: don't change {{frac}}. It's used on thousands of primarily non-mathematical pages, and changing it would invite I'm sure complaints and result in a swift reversion due to worsened readability – in e.g. image captions and infoboxes where text is often smaller. Create a new template by just copying and changing it, as I did for {{User:JohnBlackburne/smFrac}}. There's already a {{1/2}}, a {{2/3}}, another fraction template would not be out of place. Add a link to it on {{frac}} and vice versa and editors can use which they want.--JohnBlackburnewordsdeeds 18:42, 2 April 2010 (UTC)Reply
I oppose using the current {{frac}} template for math content; I agree, in principle, that an appropriate template could be created for math pages. My main point was not my personal feelings, though, but that your proposal seems to differ significantly from the wishes expressed by most commenters above.
I don't know how to reconcile your feelings about maintaining consistency vs. JohnBlackburne's desire to leave {{frac}} unchanged; these seem diametrically opposed. I think I fall into your camp here more nearly than his: if a template is doing the Wrong Thing, it should be fixed. Of course I'm not sure of what the Right Thing is. I don't like any of the solutions proposed so far for fractions in exponents, for example: the ½ in x½ is too small, the 1/2 in x1/2 is too long, etc.
CRGreathouse (t | c) 20:05, 2 April 2010 (UTC)Reply
I think we are drifting off topic (and I think I am partially to blame). In as much as we agree that {{frac}} should be avoided in mathematical contexts, then refining it is outside of the scope of this talk talk page. Within the context of mathematics, I am farly agnostic. I don't mind "slash" fractions in exponents as long as it is unambiguous and avoids unnecessary parenthesis, so   would be better written   and   would be better written  .
That said, I see no reason to fix lousy spacing in the {{frac}} template. There is good reason to have a template that generates case/composed fractions. As long as the intent of the template isn't changed (i.e., "a template that makes a case fraction that isn't too small"), I don't see how other pages' editors would have a problem with removing its decenders and making its "one over two" look more like the ½ glyph. Let's move that discussion there. —Ben FrantzDale (talk) 12:34, 5 April 2010 (UTC)Reply

intended for mathematics articles

edit

According to this page, "This subpage of the Manual of Style contains guidelines for writing ... articles on mathematics." (my emphasis). I don't see that we need to go out of our way in this page to talk about how to write non-mathematical pages. The section "fractions" is not intended to talk about fractions such as "3 12 Oak Street", it's about fractions in mathematical contexts. For other contexts, the general advice is here. — Carl (CBM · talk) 11:40, 1 April 2010 (UTC)Reply

notation of logarithms

edit

After noticing irritation of some readers with the notation of logs in WP, it seems to me a recommendation in the style guide might useful. The biggest problem here is with   or  , where the specific base might not be obvious to average readers. While in the context of a particular book or article the above notation is usually non-ambiguous, it becomes ambiguous in WP, where all these contexts mix (see Logarithm#Implicit_bases). Therefore I'd suggest that articles should always use non-ambiguous notation like   or  . Alternatively authors insisting on using   should at least provide a footnote explaining which base is used. Keep in mind while the base might be obvious to the author, for an arbitrary reader with a rather different background and different context in mind it might not be.--Kmhkmh (talk) 08:44, 9 April 2010 (UTC)Reply

I believe log(x) should be reserved for cases where the base is arbitrary and consistent, e.g. log(x)/log(y)=logy(x). ᛭ LokiClock (talk) 09:02, 9 April 2010 (UTC)Reply
Though I should note such usage threw me for a loop the first time I saw it, and logn would be even better. ᛭ LokiClock (talk) 09:05, 9 April 2010 (UTC)Reply
That is actually another problem   is not just ambiguous regarding the base, but it could also stand for "base independent", which in a way is another level of ambiguity.--Kmhkmh (talk) 10:53, 9 April 2010 (UTC)Reply
I think it's better to just clarify in prose which logarithm is meant, if there is potential for confusion. For example, I would feel silly writing "ln" in the context of complex analysis; the right notation there is just "log". — Carl (CBM · talk) 11:49, 9 April 2010 (UTC)Reply
I don't think there's an easy way around this problem. Nobody working with logarithms specifies the base every time, so we can't expect editors to do that. And "log" on its own will never be completely clear: To me, it will always mean "natural log", whereas to an engineer, it will always mean "common log". I think often the meaning of log will be clear from the context: In advanced mathematical articles it will mean natural logarithm, and in advanced engineering articles it will mean common logarithm. But in those articles where it is not clear, the convention should be specified explicitly. That seems like the best solution available. Ozob (talk) 12:08, 9 April 2010 (UTC)Reply
Also in computer science it mostly means log2. Fortunately it's also mostly used within O-notation where the base doesn't matter. —David Eppstein (talk) 19:54, 9 April 2010 (UTC)Reply
At present we don't have much consistency in Wikipedia mathematics articles. Euler–Mascheroni constant, harmonic number and Stirling's approximation use  , Riemann zeta function and Von Mangoldt function use   - and prime number theorem and Chebyshev function use both ! Gandalf61 (talk) 15:32, 9 April 2010 (UTC)Reply

Empty Set

edit

What should be the notation for empty set? Should it be   or  ? Mpd1989 (talk) 10:26, 20 April 2010 (UTC)Reply

I prefer the second, but I think the first is acceptable. Ozob (talk) 03:27, 21 April 2010 (UTC)Reply
I prefer the first, as the second looks very eccentric to me. I am not aware of any serious mathematical literature that uses the second. Hans Adler 12:47, 26 May 2010 (UTC)Reply

Whatever happened to Blackboard Bold?

edit

I raised this issue in Talk:Set (mathematics), but it is probably better here. Blackboard bold is the font of our craft. Why does mere bold font (N) seem to be preferred to blackboard bold ( )? I was genuinely confused when I saw bold font being used for one of these sets. NathanZook (talk) 02:46, 21 April 2010 (UTC)Reply

This MOS has a detailed paragraph on this exact issue. — Carl (CBM · talk) 02:56, 21 April 2010 (UTC)Reply

RFC which could affect this MOS

edit

It has been proposed this MOS be moved to Wikipedia:Subject style guide . Please comment at the RFC GnevinAWB (talk) 20:52, 24 May 2010 (UTC)Reply

Inner products

edit

There has been a discussion at Pythagorean theorem about the notation for inner products. Since this is a common "newbie" mistake, I think the MOS should clarify that less-than and greater-than signs should not be used for inner products. Acceptable symbols include parentheses and angle brackets, either in plain text or in math mode. — Carl (CBM · talk) 12:44, 26 May 2010 (UTC)Reply

Same thing with Bra-ket notation. (Which is closely related to the inner product notation.) --Robin (talk) 13:48, 26 May 2010 (UTC)Reply
Sounds good to me. Ozob (talk) 00:22, 27 May 2010 (UTC)Reply
It should be noted that if we write an inequality about inner products with the improper symbols, it becomes unreadable: <v,v>>0 --Tercer (talk) 01:11, 2 June 2010 (UTC)Reply

Scriptstyle

edit

After this discussion, I removed the text from this MOS about scriptstyle. I didn't add any language against scriptstyle, though. So the current MOS is silent on the issue. I think that gentle advice against using scriptstyle would be reasonable, if it was worded well. — Carl (CBM · talk) 14:27, 17 July 2010 (UTC)Reply

When I wrote that paragraph (I do think it was me who wrote it), there was a vocal contingent that argued for \scriptstyle on the grounds that it produced better formatting (i.e., more similar to the surrounding text). They seem to have vanished, and with their vanishing I think the MoS can (and should) be more critical of \scriptstyle. However, I do regret the loss of the discussion of \textstyle. \textstyle is an important command when writing TeX inline, and I think that the MoS ought to have a mention of it. Ozob (talk) 00:43, 18 July 2010 (UTC)Reply

Fractions

edit

Please comment at WT:MOSNUM#Fractions about any conflict between WP:MOSNUM#Fractions and WP:MOSMATH#Fractions, and the desired outcome. — Arthur Rubin (talk) 19:39, 21 July 2010 (UTC)Reply

WikiProject Statistics discussion about usage of ƒ for mathematical functions

edit

There is a discussion at Wikipedia talk:WikiProject Statistics#ƒ or f about whether the symbol ƒ should be used for mathematical functions in Wikipedia articles. —Bkell (talk) 17:47, 18 November 2010 (UTC)Reply

proposed summary of when to use Tex and HTML

edit

I would like to add a summary similar to the following to the article. Details may change; in particular, some people would prefer \textstyle to \scriptstyle. Nonetheless, I feel that finding this relevant information in the article is harder then it should be. TStein (talk) 22:11, 1 December 2010 (UTC)Reply

Preferred formatting for inline equations
method when to use sample code formats as
HTML using {{math}} preferred Lorem ipsum, {{math|∇ × '''B''' {{=}} ''μ''<sub>0<sub>'''J'''}}, tuo quantum... Lorem ipsum, ∇ × B = μ0J, tuo quantum...
HTML using {{nowrap}} or {{nowrap begin}} (disputed, see discussion below) Lorem ipsum, {{nowrap|∇ × '''B''' {{=}} ''μ''<sub>0</sub>'''J'''}}, tuo quantum... Lorem ipsum, ∇ × B = μ0J, tuo quantum..
LaTeX textstyle when not possible in HTML Lorem ipsum, <math>\textstyle\sum_{n=0}^\infty\frac{x^n}{n!}</math>, tuo quantum... Lorem ipsum,  , tuo quantum...
Preferred formatting for separate line equations
method when to use sample code formats as
LaTeX :<math>\nabla \times \mathbf{B} = \mu_0\mathbf{J}</math>  
HTML using {{math}} and the option big=1 :{{math|big=1|∇ × '''B''' {{=}} ''μ''<sub>0</sub>'''J'''}} ∇ × B = μ0J
HTML using {{math}} :{{math|∇ × '''B''' {{=}} ''μ''<sub>0</sub>'''J'''}} ∇ × B = μ0J
HTML :∇ × '''B''' = ''μ''<sub>0</sub>'''J''' ∇ × B = μ0J
Responses
Scriptstyle should not be used for things other than subscripts. If something needs to be done in LaTeX, it should just be put in LaTeX. Scriptstyle produces all sorts of abominable results, like the μ0 in your example where it is not easy to tell that 0 is a subscript. The poor appearance of LaTeX in the current system is a good reason to prefer HTML, but not a reason to use scriptstyle. — Carl (CBM · talk) 22:22, 1 December 2010 (UTC)Reply
The use of scriptstyle definitely should be limited, but the use of plain Tex is often just as bad in different ways. I think the main use of scriptstyle should be for single characters not found in HTML such as script letters. Perhaps I can move this under regular LaTeX and use an asterisk for when it should be used. TStein (talk) 23:10, 1 December 2010 (UTC)Reply
Regarding "Do not use inline"; The {{math}} template is explicitely designed for inline use. So why would that line be there? I should actually be at the top, preferred over HTML. EdokterTalk 22:59, 1 December 2010 (UTC)Reply
Unfortunately, the inline use of {{math}} got horked by a recent change that made all html math larger so that it roughly agrees with the LaTeX png font size. Even when it is smaller like it is one of my computers it still reserves a large amount of space pushing the lines apart around it. TStein (talk) 23:10, 1 December 2010 (UTC)Reply
I'm not sure what change you're referring to, but IMO the {{math}} template has been and remains the best way to format inline math. As Edoktor said, it should be placed at the top, above HTML. Jim.belk (talk) 02:50, 2 December 2010 (UTC)Reply
I once attempted to make {{math}} math the output of TeX, but that was unsuccessfull. It now scales to the surrounding text, only compensating fontsize due to the different typeface where needed. Though I do agree that the lineheight could be tweaked. EdokterTalk 12:31, 2 December 2010 (UTC)Reply
I like the concept of the {{math}} template but as it stands it is still the worst option available (at least on my system). Not only is the subscript too big but the nabla is stretched too tall. TStein (talk) 14:41, 2 December 2010 (UTC)Reply
{Math} only uses a serif font (just like LaTeX), so if it is busted for you, you need to check your font setings. It is not 'busted' in any way, so that comment should defenitely be removed. EdokterTalk 15:56, 2 December 2010 (UTC)Reply
I agree with you that the article's current description of when to use HTML and when to use LaTeX is distinctly subpar, but in part I think that's because there's some dispute on what's appropriate. See WT:WPMATH#Request for comment concerning formatting of standalone equations.
Also, \scriptstyle is an abomination. Ozob (talk) 03:54, 2 December 2010 (UTC)Reply
Maybe I am being overly optimistic, but that is why I am doing this so that we have one more opportunity to get this fixed.
I don't know why you think \scriptstyle is that bad. On my system, using the {{math}} template is significantly worse (the subscript is even bigger relative to the font and the del operator is stretched too tall). Further, I think you are giving the \displaysize too much credit. Scriptstyle may be an abomination, but for one character symbols not found in HTML it is the only option. TStein (talk) 14:41, 2 December 2010 (UTC)Reply

I made some tweaks to try and address concerns.

  1. added option to put LaTeX equation on own line to inline preferences
  2. moved {{math}} template up as an alternative that is currently busted.
  3. moved scriptstyle down and put as its only use single characters not found in HTML.

TStein (talk) 14:58, 2 December 2010 (UTC)Reply

Don't move scriptstyle anywhere, remove it. It's just wrong. We've already had an extensive discussion on that topic before.—Emil J. 15:09, 2 December 2010 (UTC)Reply
Also, fix your Latin. It's ipsum.—Emil J. 15:11, 2 December 2010 (UTC)Reply
hehe. The stuff after the inline equation is completely made up as well. Rest assured that if there is enough consensus to put this in the article that I will look up the 'canonical' Lorem ipsum, etc. I wasn't a part of that discussion about the scriptstyle and my understanding is that there was no real consensus. On the other hand, I don't necessarily want to open old wounds and with so much hate for the scriptstyle I will remove it as well if I put it in the main article.TStein (talk) 19:54, 2 December 2010 (UTC)Reply

I just added some spacing to the HTML equations, and I italicized the Greek letters. Feel free to revert if you don't like these changes. Jim.belk (talk) 15:30, 2 December 2010 (UTC)Reply

Everyone should feel free to change anything. You are right, I was sloppy about both the spaces and the italicized variable. Anything that helps to reach a consensus and improves this is greatly appreciated.TStein (talk) 19:54, 2 December 2010 (UTC)Reply

Using {{math}}

edit
I made some alterations, preferring {math} for inline. I also noted why; apart from the serif font, HTML will cut in the middle of a formula if the is no 'no-wrap' mechanism in place (which {{math}} has). (Did you know you can assign your own font for .texhtml in your vector.css file?) I also added the "big=1" option for seperate line formulae. EdokterTalk 21:57, 2 December 2010 (UTC)Reply
I made additional alterations: \textstyle is now specified for inline LaTeX (it should be always used if it is relevant; unfortunately it is not relevant for the current example formula); I removed \scriptstyle entirely; and I required the use of {{nowrap}} for HTML not enclosed in {{math}}. (Note that nowrap is used by some high-quality articles, such as Group (mathematics).) Also, I removed any guidance as to what should be used for a displayed equation since that depends on the outcome of an aforementioned discussion at WT:WPMATH. Ozob (talk) 02:04, 3 December 2010 (UTC)Reply
I've changed the example to show something where the \textstyle matters, and which cannot be (reasonably) represented in HTML. Also, I'm not sure whether it's necessary to require {{nowrap}} for displayed HTML: the displayed text starts close to the left margin, hence it should not need to wrap (and if the browser window is so narrow that it wraps anyway, the {{nowrap}} version would make it stick out of the right margin, which I think is no more helpful than letting it wrap).—Emil J. 11:13, 3 December 2010 (UTC)Reply
Good point. I've removed that instance of {{nowrap}}. Ozob (talk) 11:39, 3 December 2010 (UTC)Reply
Sorry, but I cannot imagine why HTML using {{nowrap}} would be preferred, especially since it requires no less typing, {{math}} already ensuring no-wrapping, and the formula would be dispayed in the wrong typeface. In my understanding, formulae should always be didplayed in serif; this would solve numerous problem. I just saw a whole discussion on WT:WPM regarding f and f, which would be instantly solved if only {{math}} were used consistently. EdokterTalk 14:07, 4 December 2010 (UTC)Reply
As I see it, {{math}} displays things in the wrong typeface; for that reason, I prefer not to use it. Good mathematical writing should read well and look good on the page, and displaying math in a different typeface from running text is jarring. To my eye, f(x) is easier to read than f(x) because the latter startles you. Let's look at an example. Here's a paragraph from Logarithm done both ways. First, with {{nowrap}}:
A compact way of rephrasing the point that the base-b logarithm of y is the solution x to the equation f(x) = bx = y is to say that the logarithm function is the inverse function of the exponential function. Inverse functions are closely related to the original functions: the graphs of the two correspond to each other upon reflecting them at the diagonal line x = y, as shown at the right: a point (t, u = bt) on the graph of the exponential function yields a point (u, t = logbu) on the graph of the logarithm and vice versa. Moreover, analytic properties of the function pass to its inverse function. Thus, as the exponential function f(x) = bx is continuous and differentiable, so is its inverse function, logb(x). Roughly speaking, a differentiable function is one whose graph has no sharp "corners".
Next, with {{math}}:
A compact way of rephrasing the point that the base-b logarithm of y is the solution x to the equation f(x) = bx = y is to say that the logarithm function is the inverse function of the exponential function. Inverse functions are closely related to the original functions: the graphs of the two correspond to each other upon reflecting them at the diagonal line x = y, as shown at the right: a point (t, u = bt) on the graph of the exponential function yields a point (u, t = logbu) on the graph of the logarithm and vice versa. Moreover, analytic properties of the function pass to its inverse function. Thus, as the exponential function f(x) = bx is continuous and differentiable, so is its inverse function, logb(x). Roughly speaking, a differentiable function is one whose graph has no sharp "corners".
I prefer the first. What does everyone else think? Ozob (talk) 16:43, 4 December 2010 (UTC)Reply
I definitely prefer the latter, as that definitely looks more professional and properly typeset; the way formulae are meant to look, which is exactly the purpose of {{math}}. LaTeX does use serif with a reason, becuase that is the established typesetting for formulae, and {{math}} only help ensuring consistency between both rendering methods. What bothers me the most is the mix between formulae with serif and sans-serif on an article, that needs to be consistent, otherwise it looks liek a mess. EdokterTalk 17:34, 4 December 2010 (UTC)Reply
By default, LaTeX uses Computer Modern everywhere: It uses a serif font for mathematics only because that's the default font for everything. Book designers are welcome to change the font if they like. For example, Knuth, Graham, and Patashnik's book Concrete Mathematics uses a slab serif font, Concrete Roman, for its text, and matches it with a similar weight script font, AMS Euler, for its mathematics. Concrete Roman text with Computer Modern mathematics looks terrible because the two have such different weights. My opinion is that the font used by {{math}} clashes with the font used for ordinary text: The contrast is too high, the x-height does not match, and the transition from sans serif to serif is too sudden. Ozob (talk) 20:05, 4 December 2010 (UTC)Reply
(←) The x-height should match, but may be off due to use of non standard fonts. Common.css defines .texhtml for each skind based on the default font height. For Vector .texttml defines a serif font, 120% larger that the regular (sans-serif) font, and an adjusted line-height. This is based on the default fonts used in most (Windows) based browsers; Arial and Times New Roman. In some circumstances, you will never achieve a perfect blend if mismatched fonts are used, but still, my opinion is that formulae must be displayed in serif. EdokterTalk 22:18, 4 December 2010 (UTC)Reply
I don't have anything to say to that (except that I still disagree); except I would really like to solicit the opinions of others, since it seems that we are at an impasse. Ozob (talk) 22:54, 4 December 2010 (UTC)Reply
Agreed. I'll set up an RfC. EdokterTalk 10:31, 5 December 2010 (UTC)Reply

Request for comments: serif vs. sans-serif

edit

Should inline formulae coded in HTML be displayed in a serif font (similair as used by LaTeX), in order to make formulae more recognizable as such, or should it be displayed in sans-serif font (same as default font in monobook and vector), so that the formula retains the same typeface as the surrounding text? EdokterTalk 10:31, 5 December 2010 (UTC)Reply

Copied from above:

Here's a paragraph from Logarithm done both ways. First, with {{nowrap}} (sans-serif):

A compact way of rephrasing the point that the base-b logarithm of y is the solution x to the equation f(x) = bx = y is to say that the logarithm function is the inverse function of the exponential function. Inverse functions are closely related to the original functions: the graphs of the two correspond to each other upon reflecting them at the diagonal line x = y, as shown at the right: a point (t, u = bt) on the graph of the exponential function yields a point (u, t = logbu) on the graph of the logarithm and vice versa. Moreover, analytic properties of the function pass to its inverse function. Thus, as the exponential function f(x) = bx is continuous and differentiable, so is its inverse function, logb(x). Roughly speaking, a differentiable function is one whose graph has no sharp "corners".

Next, with {{math}} (serif):

A compact way of rephrasing the point that the base-b logarithm of y is the solution x to the equation f(x) = bx = y is to say that the logarithm function is the inverse function of the exponential function. Inverse functions are closely related to the original functions: the graphs of the two correspond to each other upon reflecting them at the diagonal line x = y, as shown at the right: a point (t, u = bt) on the graph of the exponential function yields a point (u, t = logbu) on the graph of the logarithm and vice versa. Moreover, analytic properties of the function pass to its inverse function. Thus, as the exponential function f(x) = bx is continuous and differentiable, so is its inverse function, logb(x). Roughly speaking, a differentiable function is one whose graph has no sharp "corners".
Comments
  • Sans-serif. Inline mathematics is more readable when it is set in the same or a similar typeface as the surrounding text. Suddenly switching to a different typeface is jarring. There are several reasons why the typeface used by {{math}} (and by LaTeX that has been converted to HTML) clashes with the surrounding text: It is larger than the surrounding text and a larger distance between baselines, has a different x-height, more overshoot, more contrast between horizontal and vertical strokes and the presence of an angle of stress; altogether a very different and very inconsistent look. Professionally published mathematics often uses the same or a similar font for text and mathematics. By default, LaTeX uses Computer Modern for everything. Palatino and Times New Roman are also popular. It's not necessary to use the same font for text and math; Knuth, Graham, and Patashnik's Concrete Mathematics uses Concrete Roman for text and the harmonious AMS Euler for math. But it is necessary to use a font which meshes well: Concrete Roman text does not go well with Computer Modern math. Similarly, the default font for running text on Wikipedia does not go with the output of {{math}}. I would prefer that we not use {{math}} or that Wikipedia's style sheet be changed so that the output of {{math}} is not so inconsistent with everything else. (In fact, the latter option might be the best of all, as this would make LaTeX which has been converted to HTML also look consistent.) Ozob (talk) 13:03, 5 December 2010 (UTC)Reply
  • Serif. Mathematical formulae have historically been set is a serif typeface. This has been the rule in publishing for a long time, regardless of the font used in running text. Serif helps adding and retaining meaning to the various symbols used, which would be lost in a sans-serif font (sparking discussion like this one) and helps identify a formula within the running text. Serif is also consistent with the font used by LaTeX, which cannot be changed easily. Regarding metrics; The .texhtml CSS in the various skin CSS files strives to match the metrics between the formula and running text as close as possible. Using the default browser fonts (Arial and Times New Roman), this will result in a near perfect match. There may be discrepancies when non-default fonts are used, but they appear to be negligable. As a side note: I propose that Cambria be used as the prefered font for .texhtml, as this typeface is specifically geared towards math, has a wide installed base (standard since Vista and available through Office 2007 and it free viewers), and matches quite well with Arial in terms of style and metrics. EdokterTalk 13:44, 5 December 2010 (UTC)Reply
  • Comment. It seems to me that this argument does not need to be resolved. Instead of presenting an opinion on whether serif or sans-serif is better, the MoS should simply present both options, indicating the advantages and disadvantages of each. All that needs to be agreed upon is some neutral language describing the two options.

    I do agree, however, that the .texhtml style in the style sheet should be changed so that the results have higher overall quality. Most importantly, instead of simply specifying a serif font, some list of fonts should be given that increase the chance of high-quality output on a typical computer. In addition, it is possible that the 125% font size and 1.25 em line height should be toned down a bit to get better matching of the x-heights. Jim.belk (talk) 15:56, 5 December 2010 (UTC)Reply

    • The x-height are already a pretty good match (but can always be finetuned). And I did propose to use Cambria as a preferred font, as it is the most comprehensive math font available (other suggestions welcome). As for presenting both options; that creates the inconsistency that I am trying to get rid of. It looks really unprofessional to have formulae in all kinds of different styles. (Edit:) here is a comparison: Template:Math/testcases. EdokterTalk 16:10, 5 December 2010 (UTC)Reply
      • I looked at Template:Math/testcases using Firefox, Chrome, and Internet Explorer on my computer. Bizarrely, the current template looks terrible in Internet Explorer 8, while in Firefox and Chrome the current template looks exactly the same as the "Times New Roman" version displayed second. I have taken some screenshots of this phenomenon:

        I never use Internet Explorer, so these represent the default settings for that browser. Has anyone else been experiencing this issue? It would certainly help to explain some of the difference of opinion on the {{math}} template.

        Jim.belk (talk) 20:37, 5 December 2010 (UTC)Reply
        • Even if you never used it before, some other software may have played with IE's setting. Check IE's font settings (Internet Options > Fonts); it should say 'Times New Roman' under Latin. It works OK on my end with Chrome, Firefox and IE8. EdokterTalk 21:00, 5 December 2010 (UTC)Reply
          • The (Internet Options > Fonts) indeed says 'Times New Roman' under Latin, though that was a good thought. Whatever it is, it doesn't happen on your computer, so I guess it's not a very general problem. Jim.belk (talk) 22:14, 5 December 2010 (UTC)Reply
            • Apparently, IE chooses a different serif font (it's not Times New Roman), but I don't know what's causing it. However, when the the font name(s) will be incorporated, it should no longer be a problem. EdokterTalk 01:09, 6 December 2010 (UTC)Reply
    • I finetuned the metrics even further, testing it in all browsers and a (software) loupe, with each rendering method (plain, smoothing, cleartype). I find that 120% / 1em lineheight gives the most consistent results with Cambria and Times New Roman (with Arial as the base font); they now have equal heights accross the board. I adjusted the samples on the testcases page. For a font defenition, a good start would be font-family: 'Cambria', 'Times New Roman', serif;. Any more suggestions for use with formulae? EdokterTalk 21:36, 5 December 2010 (UTC)Reply
  • Comment. I think the {{math}} version is prettier than the {{nowrap}} version. And there are strong advantages to using serif fonts over sans-serif fonts for mathematicial formulae, where precision is essential: they don't lead to confusion between l (lower case ell) and | (vertical bar, e.g. in absolute value signs) and 1 (number one) and I (capital letter eye). For this reason I would be strongly opposed to mandating sans-serif over serif. But I'm not convinced that the math template is a good enough solution that we should mandate it. What we really need is something more like MathJax. As for fonts, both serif and Times are better than Cambria. —David Eppstein (talk) 22:20, 5 December 2010 (UTC)Reply
  • Sans serif, that is, it should use the same font as the surrounding text. Mixing two fonts, especially a serif and sans serif one, is unesthetic, typographically wrong, and visually distracting.—Emil J. 15:45, 6 December 2010 (UTC)Reply
    • "Typographically wrong" is debatable. As for unesthetic and visually distracting, priority must be given to functionality over beauty. Two other editors have already explained that sans-serif lacks the ability to distinguish between certain characters, which is a problem that can only be solved by using serif, even if it means that it "looks ugly". EdokterTalk 17:52, 6 December 2010 (UTC)Reply
      • In sans-serif the lower case ell can be displayed using the character, vertical bars looks exactly as they should: |x|, number 1 can't possibly be confused with anything else, and only letter I is unfortunate (however in many cases it could be replaced with either J, or , or ). // stpasha » 19:24, 17 February 2011 (UTC)Reply
  • Sans serif. At any rate the appearance of the serif font solution may or may not match that of LaTeX: it really depends on the user's font settings. In some browsers that I uses, the serif font resembles LaTeX and in others it does not. The lack of uniformity is an additional visual distraction that I find hinders the readability of the result. Sławomir Biały (talk) 15:53, 15 December 2010 (UTC)Reply
  • Serif. Usability is more important. Further, I don't think it is desirable to have the equations completely blend in with the surrounding text. I often need to go back to scan a paragraph for an equation that I missed or forgot. The key is the balance of how much you want them to stand out. In the ideal world italicizing the variables and bolding the vectors should be sufficient. In my opinion, though, having a slightly different font with serif in addition to the italics doesn't really hurt. In any case, other than the usability issue, we are rearranging deckchairs on the titanic here. TStein (talk) 16:37, 15 December 2010 (UTC)Reply
p.s.: can a better math symbol font be specified as well. The nabla is being stretched incorrectly on the browsers I use. Further, the subscripts are too big to the point that they are almost unusable. TStein (talk) 16:37, 15 December 2010 (UTC)Reply
I Proposed Cambria, but that had no consensus, so now Times New Roman is used. You can try putting .mathhtml .texhtml { font-family: Cambria, serif; } in your vector.css. EdokterTalk 16:58, 15 December 2010 (UTC)Reply
The class name is actually "texhtml", and as I just found, styling it in vector.css has no effect unless the rule is marked !important.—Emil J. 17:24, 15 December 2010 (UTC)Reply
  • Serif. I think distinguishability of the math symbols from each other is more important than blending into the body text. In fact, I'm not convinced that blending in is a virtue at all: distinguishing math from text, as the serif options do, is also helpful. —David Eppstein (talk) 17:29, 5 January 2011 (UTC)Reply
  • Serif.
    • Legibility: basically lI|1 oO0 rnm ij vvw, extremely important when outside actual words and thus one cannot get context - if I'm an elementary school student, how would I know that current is symbolized by I and not l ("ay" and not "el")?
    • Aesthetics: Does one really read through variables in a text as they would the main body, processing them just like any other word? Also, it is even more difficult to read through an article with actual equations when variables cited inline look completely different - aa is one egregious example, or the confusion when Greek variables are not set aside inline in some way: wω iι vγ.
    • Continuity: Can we please get some consensus, mainly from those who are actually in the mathematical-sciences community? I really have some frustration when people are reverting every which way in some of these technical articles, especially when they think that that is the mandated guideline (which this article makes completely unclear). SamuelRiv (talk) 04:51, 14 January 2011 (UTC)Reply
  • Serif. I prefer the maths bits to stand out in the running text and match up to any bits in LaTeX. It is just wrong for instance I think to start exponentiation with an, and then get into:
 
The letter 'a' looks completely different in the two cases never mind the 'n', and there's all that trouble with pi. I would like to completely rewrite that so it starts with an and continues on not having big differences between the bits of maths formatting. Dmcq (talk) 09:51, 25 March 2011 (UTC)Reply
  • Serif. That's what all mathematics literature and text books use. In mathematics text, fonts matter a lot - using different fonts for the same alphabet may denote entirely different things. So, to be consistent with mathematics literature, use of Serif font is must. Even when it's an inline formula and <math> tag is not desirable, the Serif font must be used using the {{math}} tag. - Subh83 (talk | contribs) 22:37, 15 April 2011 (UTC)Reply

.texhtmlf font defenition

edit

While the discussion regarding serif or sans-serif is ongoing, there is at least consensus that for the serif part, the font defenition of 'serif' alone is not adequate. I proposed Cambria as a prefered font, but Times New Roman has the obvious preference. So I will change the font defenition to 'Times new Roman', serif; in the skin files to reflect this. EdokterTalk 15:43, 6 December 2010 (UTC)Reply

If the idea is to match TeX output, you can as well add cmr10, 'Latin Modern Roman'.—Emil J. 17:04, 15 December 2010 (UTC)Reply

Italic Greek letters

edit

I believe the idea that Greek letters used in maths should always be upright because Greek does not have italic letters is based on a wrong idea. They are not Greek letters when they are used in maths, they are maths symbols derived from the Greek alphabet. Consistency with maths is more important in maths than consistency with Greek. Dmcq (talk) 13:46, 19 February 2011 (UTC)Reply

This is up to editors, in that you can use italic or upright Greek for variables, but constants should upright, or at least that's how I read MOS:MATH#Greek letters. Personally I think upright works better: being cursive Greek letters like α, β already look like italic forms: with serif fonts the italic form is usually cursive. Italicising greek letters just looks odd. E.g. compare α and α /  . I suspect this is very subjective and depends also on font/browser/OS combination.--JohnBlackburnewordsdeeds 14:56, 19 February 2011 (UTC)Reply
  • Looking at the books on my shelf, 16 of them use italic greek letters, and 2 use non-italic. Out of those 2 one book is very old, published in pre-computer era, while the other is quite new. Looking at some research papers downloaded from different journals, 39 of them had italic greek letters, and 3 non-italic. So I guess the current MoS's claim that "greek letters are usually non-italicized" is dubious at best. Besides, the LaTeX installation used on Wikipedia comes with italicized greek letters, so using the italic greek letters both in LaTeX formulas and in inline text would help making formatting in the article more consistent. // stpasha » 21:25, 20 February 2011 (UTC)Reply
I agree with italicizing Greek variables, and the MOS should be clarified to reflect this. Then again, we may be nowhere near resolving the serif-vs.-sans-serif issue, so I'm not sure how everyone would react.
Just a side note to all this typography debate: historically, using blackboard-bold in textbooks was an accident of cross-medium imitation (blackboard to print). Use of italics in equations may have served a similar purpose in clearly separating variables from main text and thus are an accident of print. Though the dialogue of mathematics evolves as naturally as language, scientists as a professional duty have some obligation to be conservative/procedural about convention, and thus may issue prescriptivist recommendations (such as refraining from blackboard-bold in print).
Readability is the first concern by far (as when a condensed-matter paper uses π for momentum when there are a bunch of ρs lying around that look like ps), but after that we should look at prescription and precedent, as done above. SamuelRiv (talk) 21:15, 9 March 2011 (UTC)Reply

Diagrams and graphs

edit

How about this:

There is no general agreement on what fonts to use in graphs and diagrams. In geometrical diagrams points are normally labelled using upper case letters, sides with lower case and angles with lower case Greek letters.
Recent geometry books tend to use an italic serif font in diagrams as in A for a point. This allows easy use in LaTeX markup. However older books tend to use upright letters as in A and many diagrams in Wikipedia use sans-serif upright A instead. Graphs in books tend to use LaTeX conventions, but yet again there are wide variations.
For ease of reference diagrams and graphs should use the same conventions as the text that refers to them. If there is a better illustration with a different convention though the better illustration should normally be used.

I think that describes the situation. Any thoughts? Dmcq (talk) 09:30, 25 March 2011 (UTC)Reply

Anyway I've stuck it in which is better for seeing what people think! Dmcq (talk) 23:40, 25 March 2011 (UTC)Reply
For drawings it might not only be of interest which font old and ne text books, but als what is used in various popular programs used for geometry or geometrical drawings. However personally I don't think it really matters (at all) which font is used as long as the notation in the general (not the font) is easily matched with the notation in the article.--Kmhkmh (talk) 00:20, 26 March 2011 (UTC)Reply

Square brackets

edit

I've added a section on square brackets when used within html, this also treats the case of intervals specially as they occur often. I don't think the problem of people fixing the brackets happens so often with Latex markup. You can see where I've applied the templates in atan2 (it uses all four different types!) Dmcq (talk) 13:06, 16 March 2011 (UTC)Reply

I wonder if it would be a good idea for the MOS to adopt the international standard notation. What do you think? It certainly looks more intuitive and consistent to me. --Waldir talk 01:21, 1 May 2011 (UTC)Reply
I've always thought that looked bad: In conventional American notation, parentheses and brackets match up somewhat like they do in an algebraic formula. The ISO notation always makes me think someone's made a typo. Ozob (talk) 02:19, 1 May 2011 (UTC)Reply
Yes, but on the other hand it is much more intuitive than the American convention, which you can't figure out without prior knowledge about what each type of bracket means in that context. The ISO convention makes it at least guessable. --Waldir talk 14:19, 22 July 2011 (UTC)Reply
For what it's worth, the "conventional American notation" is also the convention in the UK and Australia; I wouldn't be surprised to find that it's the de facto standard for anyone writing about mathematics in English. A peek at ISO 31-11 reveals that the ISO standard includes both styles; it's not clear whether either is officially preferred. I think en.wikipedia should stay with what we're currently using. Jowa fan (talk) 12:58, 31 July 2011 (UTC)Reply

Allowed characters in HTML

edit

The editor I use on wikipedia shows the following characters or templates as available for sticking into the text under 'math and logic'

− × ÷ ⋅ ° ∗ ∘ ± ∓ ≤ ≥ ≠ ≡ ≅ ≜ ≝ ≐ ≃ ≈ ⊕ ⊗ ⇐ ⇔ ⇒ ∞ ← ↔ → ≪ ≫ ∝ √ ∤
≀ ◅ ▻ ⋉ ⋊ ⋈ ∴ ∵ ↦ ¬ ∧ ∨ ⊻ ∀ ∃ ∈ ∉ ∋ ⊆ ⊈ ⊊ ⊂ ⊄ ⊇ ⊉ ⊋ ⊃ ⊅ ∪ ∩
∑ ∏ ∐ ′ ∫ ∬ ∭ ∮ ∇ ∂ ∆ ∅ ℂ ℍ ℕ ℙ ℚ ℝ ℤ ℵ ⌊ ⌋ ⌈ ⌉ ⊤ ⊥ ⊢ ⊣ ⊧ □ ∠ ⟨ ⟩
{{frac||}}   − <math></math> {{math|}}

And personally I'd like to use the characters in the math template so they'd appear in inline maths as

− × ÷ ⋅ ° ∗ ∘ ± ∓ ≤ ≥ ≠ ≡ ≅ ≜ ≝ ≐ ≃ ≈ ⊕ ⊗ ⇐ ⇔ ⇒ ∞ ← ↔ → ≪ ≫ ∝ √ ∤
≀ ◅ ▻ ⋉ ⋊ ⋈ ∴ ∵ ↦ ¬ ∧ ∨ ⊻ ∀ ∃ ∈ ∉ ∋ ⊆ ⊈ ⊊ ⊂ ⊄ ⊇ ⊉ ⊋ ⊃ ⊅ ∪ ∩
∑ ∏ ∐ ′ ∫ ∬ ∭ ∮ ∇ ∂ ∆ ∅ ℂ ℍ ℕ ℙ ℚ ℝ ℤ ℵ ⌊ ⌋ ⌈ ⌉ ⊤ ⊥ ⊢ ⊣ ⊧ □ ∠ ⟨ ⟩

Do people agree that all these are now supported well enough that they are okay to use in Wikipedia articles and the current advice in MOSMATH that R be used instead of ℝ (or R instead of if using the math template) because of possible lack of support in browsers should now be removed?

Another thing to think about if these are okay then perhaps \textstyle math could also generate html when it comes across these characters instead needing to generate PNG images. I believe that would make a lot of inline maths look better. Dmcq (talk) 16:09, 26 March 2011 (UTC)Reply

ok to use - yes, but mandate - no.--Kmhkmh (talk) 16:40, 26 March 2011 (UTC)Reply
Some of these characters are horribly broken on my setup. And I use Vista with all SPs and Firefox 4.0. The characters that do not look ok at all are the set characters (e.g., subset-of) and the logical-arrow characters. The worst is element-of, which has a completely different appearance for smaller (and regular) font sizes than when I increase the font size: it looks like being overly stretched in height. Nageh (talk) 17:15, 26 March 2011 (UTC)Reply
Odd. I just checked in IE 8.0, and all the characters render differently, in both Courier New and Sans Serif font. The element-of and logical-arrow characters are ok now, but instead the blackboard characters are hardly distinguishable. Nageh (talk) 17:34, 26 March 2011 (UTC)Reply
That is extremely strange. Check your FF settings. All the above characters look fine on Win 7 + FF 4, both in the standard font Arial (I think) and in the edit box. It's possible that Win 7 has updated fonts compared to Vista. Tijfo098 (talk) 00:25, 4 May 2011 (UTC)Reply
I'm happy with that: for me ℝ is better for the reals as it's less ambiguous than R. But we should get more feedback as it's not just a matter of what looks good but what works on different OSes with different browsers. I think the biggest problem is XP with older versions of IE. On the TeX renderer I think there's less of a problem with that as it's something users can adjust if necessary in preferences. I suspect it's a lot less trivial to do though as I think the TeX renderer is part or MediaWiki, not just an English WP script or setting we can adjust.--JohnBlackburnewordsdeeds 17:21, 26 March 2011 (UTC)Reply
I just tried google Chrome, Firefox 4, Opera and IE8. Chrome was very good and looked the best for me. Firefox 4 and Opera were okay, Firefox had some horizontal lines darker than they should be but it was acceptable, and IE though it rendered all the characters just didn't look good at all. In particular in IE8 the blackboard bold was really nasty as noted before above. I'm on Windows 7. It looks like there is a real problem with IE8 which is ... a bit of a bummer. Perhaps Wikipedia is doing a special stylesheet for IE which is causing problems? Dmcq (talk) 18:05, 26 March 2011 (UTC)Reply
I checked IE 9 in Win 7 and all characters above display fine. IE9 seems to use a slightly different math font for some symbols compared to FF 4, e.g. for ℍ and the other blackboard letters, but it's not a major style issue. Tijfo098 (talk) 00:31, 4 May 2011 (UTC)Reply
I'm almost certain that both FF 4 and IE 9 use a form of font substitution, i.e. they pull the Unicode math symbols from whatever font has them available. They seem to have different default fallback fonts lists though. For example in FF4 the double and triple integral symbol are from the same font, but the single integral is from another. In IE9, the single and triple ones are from the same font, while the double is from another. Pretty weird. Tijfo098 (talk) 00:40, 4 May 2011 (UTC)Reply
FF 4 gets all the symbols from Unicode math#Miscellaneous Mathematical Symbols-B correctly whereas IE9 only gets a few (squares for the rest). But other than that MS made a fair bit of progress in that department, almost all other tables there display fine in both browsers, although FF has some "line too thick" issues for some symbols as noted by Dmcq above (this is more obvious in the larger font sizes). The first line from Unicode math#Miscellaneous Mathematical Symbols-A doesn't display most of the symbols in the first line in either browser though on Win 7; I need more/otehr fonts I guess. Tijfo098 (talk) 00:47, 4 May 2011 (UTC)Reply
I can see all the characters in Firefox 4 and Safari 5 on Mac OS 10.6, except possibly □ (fourth from the right on the bottom line; it renders as a square). But we can't rely on these characters until everyone can see them, and from the sound of it, that's years away. Even then I object to the blackboard bold letters. As the page currently says, "Traditional mathematical typography never used printed blackboard bold because it is harder to read than ordinary boldface." This is still true; as Serre said, blackboard bold should only be used on a blackboard. Ozob (talk) 01:36, 4 May 2011 (UTC)Reply
It is a square, if it wasn't there you'd see a taller rectangle! So in fact you see them all okay. Dmcq (talk) 07:41, 4 May 2011 (UTC)Reply
By the way I discovered that IE and Word on Windows was substituting MS Mincho for the maths characters when using Times Roman which isn't exactly ideal. My Firefox was sticking in Dejavu instead I think and why they all do something different I do not know. Dmcq (talk) 07:53, 4 May 2011 (UTC)Reply
I don't believe the argument "Traditional mathematical typography never used printed blackboard bold because it is harder to read than ordinary boldface." is well-founded. First of all, Wikipedia isn't a printed book, and even in print, blackboard bold has a tradition, and is widely used in textbooks. Whether it is harder to read than ordinary boldface for symbols that appear alone, is a matter of font design and personal preference. One aim of mathematical notation is to make it stand out from ordinary text. — Preceding unsigned comment added by 109.45.20.240 (talk) 05:19, 31 July 2011 (UTC)Reply
I don't think the issue is primarily paper versus monitor. I think the main problem is that blackboard bold letters have extremely high contrast double lines where most typefaces have solid lines, creating an inconsistent weight and a large amount of unusually placed negative space. It's the opposite of the very legible Century Schoolbook typeface. I think all of this is worse on a monitor, where the resolution is so much poorer than in print, but the problem is still there in both media. It's also there on a blackboard, but on a blackboard it's better looking than true boldface because true boldface is so much higher weight than ordinary writing. Ozob (talk) 13:17, 31 July 2011 (UTC)Reply

RFC: restructuring of the Manual of Style

edit

Editors may be interested in this RFC, along with the discussion of its implementation:

Should all subsidiary pages of the Manual of Style be made subpages of WP:MOS?

It's big; and it promises huge improvements. Great if everyone can be involved. NoeticaTea? 00:43, 25 June 2011 (UTC)Reply

'Times' character

edit

The template {{times}} is now available, to display a typographically correct 'times' character (&times; in HTML); for eample 4{{times}}100 renders as 4×100. Andy Mabbett (User:Pigsonthewing); Andy's talk; Andy's edits 20:14, 6 August 2011 (UTC)Reply

That seems totally pointless. It's fewer keystrokes to just type &times;. 76.113.124.50 (talk) 04:52, 8 August 2011 (UTC)Reply
Now at TFD Wikipedia:Templates for discussion#Template:Times.--Salix (talk): 07:20, 8 August 2011 (UTC)Reply
The point is improved readability for novice editors and others not familiar with HTML. Andy Mabbett (Pigsonthewing); Andy's talk; Andy's edits 10:14, 8 August 2011 (UTC)Reply

Italicizing Greek letters in mathematical notation

edit

I was surprised to find at Wikipedia:MOSMATH#Greek_letters that

Greek letters are not commonly italicized, so that one writes, for example, λ + y = π r2,

But look at what happens in TeX:

 

I had thought the over-arching rule was that things italicized in TeX are to be italicized in non-TeX mathematical notation. Thus:

 

TeX italicizes lower-case Greek letters, but not capital Greek letters.

So it should be in non-TeX notation. I propose that this languate in WP:MOSMATH be changed. Thoughts? Michael Hardy (talk) 18:44, 29 June 2011 (UTC)Reply

PS: I've posted this same thing at Wikipedia_talk:WikiProject_Mathematics#Italicizing_Greek_letters_in_mathematical_notation. Michael Hardy (talk) 18:44, 29 June 2011 (UTC)Reply
Currently the example is ''&lambda;'' + ''y'' = &pi; ''r''<sup>2</sup>, with lambda italicised but pi not, which seems irregular to me. This should be explained or fixed. I thought in the past I read that Wikipedia’s rule was Greek symbols weren’t italicised, maybe something like because Greek script is traditionally cursive to begin with. Not sure exactly where I got that idea though.
 Also, quickly looking at the markup for some of the rest of this MOS page gives me the impression that most of the Greek symbols here aren’t italicised. Vadmium (talk) 12:06, 2 September 2011 (UTC).Reply
I did some playing around and it also seems that Media wiki converts Greek Tex to HTML without specifically italicising it. Try playing with the “Math” rendering options in Special:Preferences#preftab-1 and compare
  •   (using <math>)
  • π = 3.1 (plain wiki code)
  • π = 3.1 (apostrophes for italic)
but
  •   (<math>)
  • e = 2.7 (roman, unitalicised, wiki code)
  • e = 2.7 (italic apostrophes)
Vadmium (talk, contribs) 04:13, 29 September 2011 (UTC).Reply
I've fixed the abovementioned example. I personally have a preference for maximal similarity of TeX and inline symbols (and hence italic Greek symbols), but to make this into a guideline will evidently have to be initiatied via a WP:RFC. Quondum (talk) 09:59, 30 October 2011 (UTC)Reply
The "TeX" above is not rendered as actual TeX. to do that, you have to add \,\! at the end of the formula. The "textified" TeX is what one sees above, which is a modifiable in a separate template, same as that of the {{{1}}} template. So:
  ( <math> TeX forced into PNG format)
  ( <math> allowed to render into HTML text)
Πi e^[ i * i π ] = 1/2 \( {{math}} with appropriate italics)
Πi e**[ i × i π ] = 1/2 ( {{math}} with opposite italics)
And just to restate my opinion, tagging is critical, and unless I can think of some viable way to get <math> to perfectly decided when and when not to render, I'm firmly supporting use of the {{math}} template. SamuelRiv (talk) 05:28, 1 November 2011 (UTC)Reply
Your second example ("<math> allowed to render into HTML text") actually renders as PNG with my set preferences, which I believe are the default. This renders as HTML for me:
 
I agree that the automated PNG/HTML selection is badly done - it is difficult to predict what determines it. This is a different topic. — Preceding unsigned comment added by Quondum (talkcontribs) 06:07, 1 November 2011 (UTC)Reply

Commas in numbers?

edit

In many countries it is customary to use commas in large numbers (e.g. 123,456.789). I need to know if this is done in negative numbers. Is it correct to write -123,456.789? What is recommendation? –droll [chat] 22:30, 25 August 2011 (UTC)Reply

Here in America I would consider it correct. (But on Wikipedia we usually do not use commas.) Ozob (talk) 01:20, 27 August 2011 (UTC)Reply
Thanks. –droll [chat] 02:58, 27 August 2011 (UTC)Reply

Branch - blackboard bold

edit

A previous section almost got into discussing the use of Blackboard Bold as a font subtype, namely for denoting the named sets (reals, integers, etc). I think it warrants at least a little discussion or even guidelining. I personally have no strong opinions, since there's plenty more horrible uses of 20 different fonts of the same letter to denote different things in the same textbook, but I will point out that the typesetter-in-chief Donald Knuth disapproves of bbold in print, even for sets. Also, see an interesting outside discussion on this. SamuelRiv (talk) 05:10, 5 September 2011 (UTC)Reply

Use of boldface for terms

edit

Hello. I'm interested in encouraging the use of boldface for certain terms appearing for the first time in the body of math articles. At the project discussion page, User David Eppstein gave the following interpretation of the current MoS:

...use boldface for the first introduction of the title of the article (or for terms that redirect to it, or terms that do not have an article but could reasonably redirect to it), italics for emphasis, and italics for new terms being defined that are not the article title or a reasonable redirect.[2]

This is pretty much what I envisioned adding to the MoS:Math. The only thing I would want to clarify is that I think this should also apply to terms appearing in the body of the article. The reasoning is: when people are redirected they can immediately see what they are looking for. Naturally boldface shouldn't be overused, and perhaps a cautionary note about overuse would appear alongside the above interpretation. Rschwieb (talk) 15:21, 6 October 2011 (UTC)Reply

Use of LaTeX

edit

I'd like to have to following downside of inline <math> blocks added:

  • Copy-pasting of inline math images will often not work.

Also, has anybody looked at how commonly used accessibility tools for visually impaired users handle math blocks? I assume they will not work well, which would be another reason to not use them when not absolutely required.

    SkyLined (talk) 14:37, 14 November 2011 (UTC)Reply
Visually impaired users can set their math preference to show the raw TeX code, so that no images are generated. — Carl (CBM · talk) 14:53, 14 November 2011 (UTC)Reply

Thanks, that takes care of that concern. If nobody objects within the next week or so, I'll add the remark about copy+pasting.    SkyLined (talk) 17:00, 14 November 2011 (UTC)Reply

  Done     SkyLined (talk) 22:02, 21 November 2011 (UTC)Reply

Comment by 85.164.125.248‎

edit

Do we want the outsiders of the mathematical culture to get an easy way in or do we not?

I would like to comment on the how to write an Article Introduction section:

What is said there is sound and good, and I would like to add this.

Mathematical writers should be aware of that they are influenced by the math academic culture they belong. This is not generally true for many of their intelligent readers.

I stumbled across this article by Marvin Minsky that is well worth reading: [ Not that the readers are alians:) (But not far from sometimes..) The article discuss fundamental aspects on how to communicate, math and other things. ]

 Communication with Alien Intelligence by Marvin Minsky
  (http://web.media.mit.edu/~minsky/papers/AlienIntelligence.html)

— Preceding unsigned comment added by 85.164.125.248 (talk) 11:12, 19 December 2011

It's a nice link, but not really relevant here, where our readers are human and capable of, well, reading. With training one can get through the most advanced mathematics articles, and inversely the advanced mathematics articles are only really relevant to those with training (but please play nice for the physicists and chemists). That said, we can and should always strive to make mathematics text and articles more readable (anywhere, not just on WP but in any academic or lay publication). For myself at least, it's a constant learning process. However, your link is not really about writing and educating in mathematics at all, but rather about the fundamentals of communication itself. SamuelRiv (talk) 17:46, 22 December 2011 (UTC)Reply

References

edit

Sensible point raised on a GA [3] - what's a good way to reference derivations? (Personally I'd say something along the lines of, 'The following derivation follows from Wizard, 2004 and do a single cite, but I'm well out of my area...) Failedwizard (talk) 21:26, 21 December 2011 (UTC)Reply

Derivations have historically been a touchy subject. But I think everyone agrees that if there is a derivation in a book or paper that is being reproduced in the article, it can be cited just the same as any other fact would be. The difficulty is more when small changes are made, just like when some source is paraphrased in a different subject - editors can discuss whether a certain paraphrase is adequate, or whether a certain derivation is too novel. There's no hard and fast rule, but he have to keep both WP:OR in mind and our goal to present the subject in an clear and encyclopedic manner. — Carl (CBM · talk) 22:00, 21 December 2011 (UTC)Reply
I think the point is whether there be some word or phrase used to indicate that the material is paraphrased rather than citing a specific fact. I've gotten into the habit of using "Following..." before a cite to do this. See, for example, cites 2,5 and 8 in Isosceles triangle theorem. This hasn't been questioned until now but none of the articles have had a GA review either.--RDBury (talk) 19:25, 29 December 2011 (UTC)Reply

Variables in {{mvar}}

edit

Is it right that the guideline, and specifically WP:Manual of Style/Mathematics#Variables does not mention {{mvar}} as an alternative to wikicode italics? Templates are more customizable. Incnis Mrsi (talk) 19:24, 22 February 2012 (UTC)Reply

I'm sure you remember the brief discussion Wikipedia_talk:WikiProject_Mathematics/Archive/2012/Jan#Template:mvar. The one person who commented (other than us) seemed to think that {{mvar}} was acceptable. Given that, I don't see anything wrong with mentioning it here. I would only object if you wanted the MoS to say that it was required or preferred or that plain italics were discouraged. I think that putting {{mvar}} everywhere is not a good investment of our resources. Better <math> support is supposed to be coming soon, and my hope is that when that's available we can switch everything to <math>. Ozob (talk) 22:53, 22 February 2012 (UTC)Reply

Update due to MW 1.19

edit

With MediaWiki 1.19 it's no longer possible to render LaTeX as HTML, i.e. formatted like the {{math}} template for simple formulae. Those options have simply been removed. With this the sections 'Very simple formulae' and 'Forcing output to be an image' no longer made any sense. I've removed them and added a note about the quarter space and other formatting which will still appear in many formulas, with {{anchor}} section links for the old titles. To discourage anyone from going around and removing all this formatting I've suggested they should only be removed when otherwise updating a formula, which I think is the best advice.--JohnBlackburnewordsdeeds 21:57, 2 March 2012 (UTC)Reply

Sans-serif maths font

edit

Is there any reason why one would or should use sans-serif fonts in maths formulas, such as for the letter "I" at Tensors_in_curvilinear_coordinates#Vector_operations, 1. Identity map? If not, I shall probably revert the recent addition of a section on sans-serif letters in Help:Latex to discourage people from its use. Nageh (talk) 11:37, 6 May 2012 (UTC)Reply

Continued from Help talk:Displaying a formula#\mathsf (sans serif)
Matrices and tensors can be written in bold capital, sans serif, double underarrow/double underscore/whatever, the list could go on and on depending on the author's preference. I am not saying sans serif should become dominant in WP, and that all sources use sans serif, again it’s only an alternative font for editors to use in the odd cases when different fonts are used.
Obviously we can't use sans serif all the way through an article (unless LaTeX is not used). Given that we should use the same notation styles in the literature, this should not be done anyway, so people can and should just use the defualt fonts in the LeTeX rendering. I would suggest that in Wikipedia:Manual of Style/Mathematics#Notational conventions we write something along these lines, (I know I'm the cause, but I don't have much time for this right now). F = q(E+v×B) ⇄ ∑ici 13:21, 6 May 2012 (UTC)Reply

Just to outline my recommendations:

  1. Vectors: capital or lowercase, plus underline (perhaps for tuples)
     ,
    or arrow/bold (for "geometric/physical" vectors/vector fields associated with a direction):
     ,
    of course either case is usual and interchangeable. However sources also use lowercase sans serif for row/column vectors:
     
    so I don't know if people would use this in conjunction with sans serif matrices...
  2. Matrices/dyadics/2nd order tensors: capital and bold
     
    or bold/non-bold sans serif
     
    (presumably the former may be preferable). The exceptions to these are if the context simply uses italics as though they were scalars (see the Dirac matrices   in the Dirac equation or Pauli matrices  ).
  3. Tensors in general: use bold sans serif, as in
     
    rather than just bold or bold-italic  , and not blackboard bold... as currently used in the Navier–Stokes equations:
     
    which could be written:
     
  4. Standard sets: (real, complex numbers etc) use blackboard bold as usual:  , rather than ordinary bold   as sometimes used, which would be reserved for vectors/matrices.

In this way, ambiguity is prevented, since

  1. The lower case "l" (ell) for (say) a vector will not be in sans serif, but usual serif (and preferably curly)  , or even  .
  2. The identity operator/matrix written as   next to other letters should not be confused for a vertical bar   such as  , also  . For statements like:
     
    in tensors in curvilinear coordinates, it should be clear that "  is the identity map" is not a "misplaced bar" (or whatever):  ...
  3. Tensor equations (without resort to indices) can be written
     
    rather than
     
    where the first may be confused for a vector equation, the second is less obvious for which quantities are vectors or tensors for someone who doesn't know. (The equations should obviously be clarified in the context anyway, but the notation may appear inconsistent for some, and it would be more obvious and followable for the reader if bold serif was for vectors, bold sans serif for tenors).

Anyway that's how I propose to use sans serif with everything else, if used at all... I will not use it myself, unless this is accepted (so to speak, even then only very occasionally). =| Best, F = q(E+v×B) ⇄ ∑ici 15:37, 6 May 2012 (UTC)Reply

Actually, sans serif looks better with bold upright, and serif looks better in italic. --The Doctahedron, 68.173.113.106 (talk) 22:14, 13 June 2012 (UTC)Reply

"Divisible" or "evenly divisible" in general interest articles

edit

User:Connor Behan has been systematically changing "evenly divisible" to "divisible" in general interest articles such as "Gregorian calendar" and "Year 2000 problem". It had been my impression that mathematicians would use "divisible" but the general public might be confused by the fact that any two integers may always be divided, possibly with a non-integer quotient. So I looked in American Heritage Dictionary 3d. ed. and the guidance wasn't clear. There was no listing for "evenly divisible" and for "divisible" I found

divisible adj. Capable of being divided, especially with no remainder: 15 is divisible by 3 and 5. [Pronunciation omitted]

So what is the best term to use in a general interest article to mean that the result of dividing two integers is an integer? Jc3s5h (talk) 11:27, 18 June 2012 (UTC)Reply

This topic is being discussed at Wikipedia_talk:WikiProject_Mathematics#Mathematical_language_must_be_precise. Gandalf61 (talk) 11:31, 18 June 2012 (UTC)Reply


Inline math notation 2

edit

The method of displaying Inline math notation has been discussed before, but it appears inconclusive. It would be helpful if the Manual of Style/Mathematics at least offered a preference over whether to use (a) <math>/PNG images (b) {{math}} (c) MathJax (d) MathML (e) HTML. Would an RFC be the way forward? --Iantresman (talk) 17:45, 13 August 2012 (UTC)Reply

The situation has been in flux lately with working MathJax support (in user preferences rather than via custom scripts) only a few weeks old. So my preference would be to wait for now. In the meantime, I think rules similar to WP:RETAIN should remain in play: format individual articles consistently, but don't gratuitously change the formatting of an article. —David Eppstein (talk) 18:04, 13 August 2012 (UTC)Reply
As I just remarked on a talk page of a heavily math loaded article, I have now activated MathJax (again). I admit that it makes all math —that is, inline and standalone— look significantly better. Major drawback is that some articles take even more significant ages to load :-( - DVdm (talk) 18:06, 13 August 2012 (UTC)Reply
MathML would seem to be the standard to strive for, though I find MathJax unusable (too slow). But giving people the option to enable it in preferences is a fine solution. --Iantresman (talk) 19:20, 13 August 2012 (UTC)Reply

Conflicting instructions

edit

Copying from the main MOS discussion page, since this is a math-internal discrepancy:

WP:Manual of Style (mathematics)#Choice of type style says "The most well-known functions—trigonometric functions, logarithms, etc.—have no parentheses. For example:  ". But WP:Manual of Style (mathematics)#Functions says "f(x) = sin(x) cos(x)".

Do we want two acceptable styles, with some guidance as to when we use each? Allow random use, as long as it's consistent within an article? Choose one and proscribe the other? — kwami (talk) 00:09, 21 October 2012 (UTC)Reply

Tagged the offending passages, noting that the conflict. — kwami (talk) 20:14, 24 October 2012 (UTC)Reply
Have you written mathematics very much? The parentheses are sometimes needed, so they cannot be forbidden:
  vs.  ;   vs.  
But at the same time they are often omitted in simple formulas. — Carl (CBM · talk) 22:14, 24 October 2012 (UTC)Reply
Sure. But that's not what the MOS says: it says that trig functions "have no parentheses". I think that absolute injunction needs to be moderated, but what wording would be best? "Parentheses may be omitted from well-known functions, such as trigonometric functions and logarithms, when they are not needed for disambiguation", maybe? Or they "are not used" unless needed for disambiguation? — kwami (talk) 23:35, 24 October 2012 (UTC)Reply
I think it was just a slip of the tongue, nothing major. I edited the page before my last comment; feel free to edit it more. I don't think it's a very big issue. There's no need for the page to try to micromanage they way that people use parentheses. — Carl (CBM · talk) 23:39, 24 October 2012 (UTC)Reply
Yes, I doubt the mathematically literate are going to argue about this, unlike punctuation in prose, so it probably doesn't matter. — kwami (talk) 23:46, 24 October 2012 (UTC)Reply
Thanks for fixing it. Art LaPella (talk) 03:11, 25 October 2012 (UTC)Reply

Roman subscripts

edit

@Mikhail Ryazanov: ([4])

MOS:MATH#Multi-letter_names gives an example using \text

but https://tex.stackexchange.com/a/98407 says this "might seem ideal, but it changes font according to the context, so the subscript would appear in italics in a theorem statement."

Are we sure we want to recommend \text and not \mathrm? It does eliminate spaces and hyphens in label names, but those arguably shouldn't be there in the first place. — Omegatron (talk) 17:53, 1 February 2021 (UTC)Reply

I have shortened your link. I hope that this is not a problem.
Clearly, \mathrm is a good choice for an index reduced to a single letter. For multicharacters indices, I believe that the parser considers each letter in the argument of \mathrm as a variable, and thus displays the word as a product. However, I do not see any spacing difference on my screen. So, \text is certainly the choice that is semantically correct. The problem of the surrounding environment is probably rare in true Latex. But in Wikipedia, it does not exists at all. So, I do not see any reason to change this part of the manual of style. D.Lazard (talk) 19:14, 1 February 2021 (UTC)Reply
First, a remark about {\rm ...} and similar: these are long-obsolete OFSS commands and should not be used at all. Then, as mentioned above, \mathrm{...} means "roman type in the math mode" and should be used for that purpose (for example, some people believe that derivatives must be typed like   instead of just  , and in this context " " is really a "roman" mathematical symbol), while \text{...} means "regular text within a formula", so it should be used for all notation that would be used without special markup in regular text. Regarding the JFET article, I don't think that things like "GS" are mathematical symbols. For example, if "gate–source (GS) junction" is italicized in regular text, it should become "gate–source (GS) junction" rather than "gate–source (GS) junction", so the same rules should apply to it when it is inside a formula ("gate–source bias VGS is..." → "gate–source bias VGS is..."), exactly what \text{...} does in LaTeX (although this is hardly important in WP). In any case, \text{...} is also shorter than \mathrm{...} :–) and treats spaces and hyphens properly (which are legitimate symbols in indices). — Mikhail Ryazanov (talk) 14:44, 2 February 2021 (UTC)Reply
@Mikhail Ryazanov and D.Lazard: So would you agree with this change? — Omegatron (talk) 05:40, 5 February 2021 (UTC)Reply
Makes sense. I'm not sure about using \operatorname for "Effectiveness", but since "SUE" is used with an argument, it probably should be typed so. (Besides this, I also suggest reading MOS:MATH about indentation and punctuation; and MOS:CAPS for the terms in the lead: they all should be lower-case, even if taken from sources with different style guides.) — Mikhail Ryazanov (talk) 20:40, 5 February 2021 (UTC)Reply

Blackboard bold

edit

I know that there has been a lot of discussion about blackboard bold vs. boldface already, but right now I feel that the text

Nowadays, blackboard bold is very commonly used for denoting standard number systems (                 ). The advantage of these notations, is that they can be used without being redefined in texts that are not specifically about them. Other uses of blackboard bold are less common, and are generally not commonly accepted. Some authors still use usual boldface for denoting standard number systems.

is worded so as to hint that authors who use boldface are behind the times and dying out, whereas the truth is that there are plenty of younger mathematicians at the highest level (as well as older ones) who seem to prefer boldface. Some examples are Terence Tao, Jacob Lurie, Song Sun, Bhargav Bhatt and Peter Scholze in their prismatic cohomology article, Brian Lawrence and Akshay Venkatesh in their work on the Mordell conjecture, the authors of the Stacks project, and so on. Also, I feel that there are plenty of other widely accepted uses of blackboard bold, such as those listed below. Therefore I would suggest replacing the text above with something like

Nowadays, both blackboard bold and usual boldface are commonly used for standard number systems (                 ) and for certain other mathematical objects, including affine space  , projective space  , adele rings  , the additive and multiplicative group schemes (  and  ), and hypercohomology (e.g.,  ).

Ebony Jackson (talk) 22:16, 15 March 2021 (UTC)Reply

Both prior and current version suffer from a lack of actual guidance: "gee, great, thanks for the history lesson, but which are we supposed to use?" is what I am left wondering. Your change just makes that obvious I suppose. Perhaps D.Lazard will have an opinion and/or recall the specific conversation from December better than I care to. Izno (talk) 15:42, 23 March 2021 (UTC)Reply

The version reverted by Ebony Jackson got a consensus at WT:WikiProject Mathematics/Archive/2020/Nov#MOS:MATH#Blackboard bold. So, it should not be reverted without a new consensus, and the reverted version must be restored. However, as I am the main author of this version, I leave this to another editor. D.Lazard (talk) 11:14, 24 March 2021 (UTC)Reply

To editor Ebony Jackson: The fact that some authors do not use blackboard bold does not contradicts that many, and probably most, authors use it. Moreover, we must not exclude the possibility that the preference of younger mathematicians for not using blackboard bold, could be a consequence of our manual of style and the Wikipedia discussions about is. In fact, until December 2020, MOS:BBB began as Certain objects, such as the real numbers R, are traditionally printed in boldface. On a blackboard or a whiteboard, boldface type is replaced by blackboard bold. Traditional mathematical typography never used printed blackboard bold because it is harder to read than ordinary boldface. Nowadays, however, some printed books and articles use blackboard bold. This suggest strongly that it is not a good practice to use blackboard bold. If this would an impact outside Wikipedia, this would be a serious issue. In any case, we must have a version that corrects this non-neutral formulation. D.Lazard (talk) 11:14, 24 March 2021 (UTC)Reply
@D.Lazard: I agree with you that we should not use wording that discourages the use of blackboard bold, as the pre-December 2020 wording did to some extent. My edit was not reverting to that version; in fact, my edit was not a revert at all. Instead I was adding a mention that blackboard bold is commonly used for certain things that are not number systems, and that usual boldface is also commonly used as well.
I suppose that there are two questions here:
1. What is the current common usage outside Wikipedia?
2. What do we want Wikipedia to use?
As for 1., I think you are probably right that for number systems (and some of these other objects), blackboard bold is more common. But there is still a sizable group of distinguished mathematicians of all ages who use usual boldface.
As for 2., we could
(a) indicate a preference for blackboard bold,
(b) indicate a preference for usual boldface, or
(c) indicate that either is acceptable.
I think that it would be fine for Wikipedia to adopt any of these three policies, as long as we mention that both blackboard bold and usual boldface are common outside Wikipedia. Ebony Jackson (talk) 18:10, 24 March 2021 (UTC)Reply
Comment: I would agree the common usage outside wikipedia is split with a slight to medium preference for blackboard bold. It seems to be that 2(c) is the most reasonable option, and seems similar to me to the projects stance on inline vs html maths: keep it consists within articles and make sure it looks good within the context of the maths appearing, but other than that use which ever you prefer. Certainly it seems it would be out of place for Wikipedia, which is very much not meant to play the role arbiter of what is and isn't acceptable mathematical typography (and ends up playing that role indirectly, as has already been mentioned) to impose itself and that everyone should use one convention or the other.Tazerenix (talk) 01:01, 25 March 2021 (UTC)Reply