You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(33) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(7) |
Feb
(44) |
Mar
(51) |
Apr
(43) |
May
(43) |
Jun
(36) |
Jul
(61) |
Aug
(44) |
Sep
(25) |
Oct
(82) |
Nov
(97) |
Dec
(47) |
2005 |
Jan
(77) |
Feb
(143) |
Mar
(42) |
Apr
(31) |
May
(93) |
Jun
(93) |
Jul
(35) |
Aug
(78) |
Sep
(56) |
Oct
(44) |
Nov
(72) |
Dec
(75) |
2006 |
Jan
(116) |
Feb
(99) |
Mar
(181) |
Apr
(171) |
May
(112) |
Jun
(86) |
Jul
(91) |
Aug
(111) |
Sep
(77) |
Oct
(72) |
Nov
(57) |
Dec
(51) |
2007 |
Jan
(64) |
Feb
(116) |
Mar
(70) |
Apr
(74) |
May
(53) |
Jun
(40) |
Jul
(519) |
Aug
(151) |
Sep
(132) |
Oct
(74) |
Nov
(282) |
Dec
(190) |
2008 |
Jan
(141) |
Feb
(67) |
Mar
(69) |
Apr
(96) |
May
(227) |
Jun
(404) |
Jul
(399) |
Aug
(96) |
Sep
(120) |
Oct
(205) |
Nov
(126) |
Dec
(261) |
2009 |
Jan
(136) |
Feb
(136) |
Mar
(119) |
Apr
(124) |
May
(155) |
Jun
(98) |
Jul
(136) |
Aug
(292) |
Sep
(174) |
Oct
(126) |
Nov
(126) |
Dec
(79) |
2010 |
Jan
(109) |
Feb
(83) |
Mar
(139) |
Apr
(91) |
May
(79) |
Jun
(164) |
Jul
(184) |
Aug
(146) |
Sep
(163) |
Oct
(128) |
Nov
(70) |
Dec
(73) |
2011 |
Jan
(235) |
Feb
(165) |
Mar
(147) |
Apr
(86) |
May
(74) |
Jun
(118) |
Jul
(65) |
Aug
(75) |
Sep
(162) |
Oct
(94) |
Nov
(48) |
Dec
(44) |
2012 |
Jan
(49) |
Feb
(40) |
Mar
(88) |
Apr
(35) |
May
(52) |
Jun
(69) |
Jul
(90) |
Aug
(123) |
Sep
(112) |
Oct
(120) |
Nov
(105) |
Dec
(116) |
2013 |
Jan
(76) |
Feb
(26) |
Mar
(78) |
Apr
(43) |
May
(61) |
Jun
(53) |
Jul
(147) |
Aug
(85) |
Sep
(83) |
Oct
(122) |
Nov
(18) |
Dec
(27) |
2014 |
Jan
(58) |
Feb
(25) |
Mar
(49) |
Apr
(17) |
May
(29) |
Jun
(39) |
Jul
(53) |
Aug
(52) |
Sep
(35) |
Oct
(47) |
Nov
(110) |
Dec
(27) |
2015 |
Jan
(50) |
Feb
(93) |
Mar
(96) |
Apr
(30) |
May
(55) |
Jun
(83) |
Jul
(44) |
Aug
(8) |
Sep
(5) |
Oct
|
Nov
(1) |
Dec
(1) |
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(1) |
Oct
(3) |
Nov
|
Dec
|
2017 |
Jan
|
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
(7) |
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
1
|
2
|
3
|
4
(2) |
5
(8) |
6
(10) |
7
(6) |
8
(4) |
9
(4) |
10
(2) |
11
(1) |
12
(3) |
13
(4) |
14
(4) |
15
|
16
|
17
|
18
|
19
(4) |
20
(6) |
21
(5) |
22
(2) |
23
|
24
(2) |
25
(3) |
26
(2) |
27
(1) |
28
(4) |
29
|
30
|
Hi all, I implemented the following method in ft2font.cpp, and although it works I don't know if it does the *right thing*. char FT2Font::draw_rect_filled__doc__[] = "draw_rect_filled(x0, y0, x1, y1)\n" "\n" "Draw a filled rect to the image. It is your responsibility to set the\n" "dimensions of the image, eg, with set_bitmap_size\n" "\n" ; Py::Object FT2Font::draw_rect_filled(const Py::Tuple & args) { _VERBOSE("FT2Font::draw_rect_filled"); args.verify_length(4); long x0 = Py::Int(args[0]); long y0 = Py::Int(args[1]); long x1 = Py::Int(args[2]); long y1 = Py::Int(args[3]); FT_Int iwidth = (FT_Int)image.width; FT_Int iheight = (FT_Int)image.height; if ( x0<0 || y0<0 || x1<0 || y1<0 || x0>iwidth || x1>iwidth || y0>iheight || y1>iheight ) throw Py::ValueError("Rect coords outside image bounds"); for (long j=y0; j<y1; ++j) { for (long i=x0; i<x1+1; ++i) { image.buffer[i + j*iwidth] = 255; } } return Py::Object(); } Basically, I copied the existing draw_rect method and changed the code a bit. The above code draws a filled rectangle in the image buffer. I use it mathtext for drawing a line (for a fraction etc.). What I'm interested is the for loop: for (long j=y0; j<y1; ++j) { for (long i=x0; i<x1+1; ++i) { image.buffer[i + j*iwidth] = 255; } } I'm not sure that this is the right code - probably some pixel isn't getting drawn. Anyone has some ideas? Thanks, Edin
Hi all, I just wanted to get others some insight about what I did in mathtext2. Who knows - it might turn out to be useful to someone ;) Also, any comments/thoughts are appreciated. A TeX math expression: $\sum_{i = 0}^{\infty}$ gets translated to a pure Python list, consisting of Python builtins: [u'\\sum', u'_', [u'i', u' ', u'=', u' ', u'0'], u'^', [u'\\infty']] This gets fed to a token parser that produces the TeX equivalent of hboxes. Every unicode character (including "\sum" - u'\u2211') gets translated to a TexCharClass instance. TexCharClass (I'm not very good at naming things :) is a class that completely handles rendering of a single character. It does this based on the information available from the font file (TrueType). More about fonts can be found in the excellent FreeType lib docs. http://www.freetype.org/freetype2/documentation.html A combination like a_b^c (or a^c_b) gets translated to a Scripted instance, which, again, handles the rendering of the sub/supercript and the nucleus. Similar for a fraction: a Fraction instance has a numerator and denumerator, which are used for rendering. The above python list [u'\\sum', u'_', [u'i', u' ', u'=', u' ', u'0'], u'^', [u'\\infty']] and any other sublist, like [u'i', u' ', u'=', u' ', u'0'] get translated to a Hbox instance. TexCharClass, Scripted, Fraction, Hbox (but also Line, Kern) are all sublclasses of Renderer, a class that defines an __init__ method and a render method. The data attributes of a Renderer instance (initialized to 0 by the Renderer's __init__ method) are xmin, xmax, ymin, ymax, bearingx, bearingy, width, height - for now. Basically, these are taken from the FreeType implementation of glyphs. In other words, every instance of Renderer, that is: an instance of a subclass of Renderer (Renderer is a virtual class) behaves like a glyph. http://www.freetype.org/freetype2/docs/glyphs/glyphs-3.html Unfortunately, although FreeType allows drawing of vertical text, I haven't implemented it yet. This would be also a base for Vbox, so, for example, \frac 1 2 could be translated to Vbox([u'1', Line(width, height), u'2']). Supporting vertical text involves adding additional attributes to the classes like, vertical bearingx, vertical bearingy (see the FreeType docs). Cheers, Edin