File:Periodic table simple fi bw.svg
From Wikimedia Commons, the free media repository
Jump to navigation
Jump to search
Size of this PNG preview of this SVG file: 800 × 539 pixels. Other resolutions: 320 × 215 pixels | 640 × 431 pixels | 1,024 × 690 pixels | 1,280 × 862 pixels | 2,560 × 1,724 pixels | 946 × 637 pixels.
Original file (SVG file, nominally 946 × 637 pixels, file size: 1.19 MB)
File information
Structured data
Captions
Summary
[edit]DescriptionPeriodic table simple fi bw.svg |
English: Simple periodic table with localized element names and standard atomic weights (IUPAC, 2009). [Temporarily converted to paths till fixing Wikipedia’s font problem with DejaVu Sans Condensed, but also the previous version of this image works correctly outside of Wikipedia. |
Date | |
Source | Own work |
Author | László Németh |
SVG development InfoField | This periodic table was created with LibreOffice. |
Source code InfoField | LibreOffice code; Created in LibreOffice 4.1.2 with this LibreLogo program
; Usage: Put this code into an English language document in LibO Writer,
; fix one program line for older LibreOffice versions, see FIXME in the code,
; and click on the Start icon of the View»Toolbars»Logo toolbar.
; NEED INTERNET CONNECTION TO RUN THIS PROGRAM! (table data downloaded from Wikipedia)
lang = input “Language (af, ca, cs, de, el, en, et, fi, fr, it, nl, pt, pt-br...)?”
bw = int input “Color (0 = COLORED, 1 = BLACK/WHITE)?”
; Source pages: http://www.wikidata.org/wiki/Q13584100
; data fields: Wikipedia page, column of element names, sorting by this column (optional)
sources = {“ru”: [“%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%85%D0%B8%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2”, 2], “fr”: [“Liste_des_%C3%A9l%C3%A9ments_chimiques”, 2], “de”: [“Liste_der_chemischen_Elemente”, 1, 3], “el”: [“%CE%9A%CE%B1%CF%84%CE%AC%CE%BB%CE%BF%CE%B3%CE%BF%CF%82_%CF%87%CE%B7%CE%BC%CE%B9%CE%BA%CF%8E%CE%BD_%CF%83%CF%84%CE%BF%CE%B9%CF%87%CE%B5%CE%AF%CF%89%CE%BD_%CE%BA%CE%B1%CF%84%CE%AC_%CE%B1%CF%84%CE%BF%CE%BC%CE%B9%CE%BA%CF%8C_%CE%B1%CF%81%CE%B9%CE%B8%CE%BC%CF%8C”, 2], “it”: [“Elementi_per_numero_atomico”, 2], “hu”: [“K%C3%A9miai_elemek_list%C3%A1ja”, 3], “ca”: [“Llista_d%27elements_per_nombre_at%C3%B2mic”, 2], “no”: [“Grunnstoffliste”, 2], “cs”: [“Seznam_chemick%C3%BDch_prvk%C5%AF”, 3], “uk”: [“%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%85%D1%96%D0%BC%D1%96%D1%87%D0%BD%D0%B8%D1%85_%D0%B5%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%96%D0%B2”, 2], “et”: [“Keemiliste_elementide_loend”, 2], “nl”: [“Lijst_van_elementen”, 2, 3], “fi”: [“Luettelo_alkuaineista”, 2, 3], “eo”: [“Listo_de_kemiaj_elementoj_la%C5%AD_atomnumero”, 3], “pt”: [“Anexo:Lista_de_elementos_qu%C3%ADmicos”, 2], “sv”: [“Lista_%C3%B6ver_grund%C3%A4mnen”, 2, 3], “af”: [“Lys_van_elemente_volgens_atoomgetal”, 2], “pl”: [“Pierwiastki_chemiczne_wed%C5%82ug_liczby_atomowej”, 2]}
IF lang != “en” [
langpage = sources[lang[: 2]][0]
langfield = sources[lang[: 2]][1] ; column with element names on the Wikipedia page
IF COUNT(sources[lang[: 2]]) = 3 [ langsort = sources[lang[: 2]][2] ] [ langsort = 0 ]
]
GLOBAL annotation, posx, posy, size, font, font2, lang
font = “DejaVu Sans”
font2 = “DejaVu Sans Condensed” ; Wikimedia has got problem with it, convert the result to path in Inkscape, if needed.
posx = 30
posy = 40
size = 42
; load and process element data from Wikipedia (embedded Python)
exec(“import urllib.request”)
exec(“data = urllib.request.urlopen("http://en.wikipedia.org/w/index.php?action=raw&title=List_of_elements").readlines()”)
exec(“table = [[j.strip(" |[]") for j in i.decode("utf-8").replace("style=\\\"background-color:#","0x").replace("\\\" | ","||").split("||")] for i in data if re.match("^\| *\d+ *\|\|", i.decode("utf-8"))]”)
; load and process other language data
IF lang != “en” [
exec(“data = urllib.request.urlopen("http://%s.wikipedia.org/w/index.php?action=raw&title=%s").readlines()” % (lang[: 2], langpage))
IF langsort > 0 [
exec(“langtable = [[i.decode("utf-8").split("||")[%d-1].split("{")[0].split("|")[-1].strip(" \t[]").split(" ")[0].split("<")[0].split("(")[0].strip(" \t[]").split("|")[-1], int(i.decode("utf-8").split("||")[%d-1].strip(" \t"))] for i in data if re.match(".*\|[ \t]*\d+[ \t]*\|\|", i.decode("utf-8"))]” % (langfield, langsort))
exec(“import operator”)
exec(“langtable.sort(key=operator.itemgetter(1))”)
exec(“langtable = [i[0] for i in langtable]”)
] [
IF lang = “no” [ exec(“data = [i.decode("utf-8").replace("|", "||").replace("{{Grunnstoff/Linje |","").encode("utf-8") for i in data]”) ]
IF lang = “pl” [ exec(“data = [i.decode("utf-8").replace("#", "|0||").replace("–","||").replace("\x27","").encode("utf-8") for i in data]”) ]
exec(“langtable = [i.decode("utf-8").replace("<td>", "||").replace("</td>", "").split("||")[%d].split("/")[0].strip(" []").split("|")[-1].split("(")[0] for i in data if re.match("^(<tr><td>|\|) *\d+ *(</td>|\|\|)", i.decode("utf-8"))]” % (langfield-1))
]
] [ langtable = [] ]
; a few fixes
table[79][3] = “Mercury” ; instead of Mercury (element)
table[11][7] = “24.31” ; Mg
table[25][7] = “55.85” ; Fe
table[63][7] = “157.3” ; Gd
; add missing positions TO the table
FOR i IN RANGE 56 71 [
table[i][5] = i – (56 – 4)
table[i][6] = 8.5
]
FOR i IN RANGE 88 103 [
table[i][5] = i – (88 – 4)
table[i][6] = 9.5
]
IF lang = “pt” OR lang = “pt-br” [
FOR i in [[1, “Hidrogénio/Hidrogênio”], [7, “Azoto/Nitrogênio”], [8, “Oxigénio/Oxigênio”], [10, “Néon/Neônio”], [18, “Árgon/Argônio”], [33, “Arsénio/Arsênio”], [34, “Selénio/Selênio”], [36, “Crípton/Criptônio”], [40, “Zircóni/Zircôni”], [42, “Molibdénio/Molibdênio”], [44, “Ruténio/Rutênio”], [51, “Antimónio/Antimônio”], [54, “Xénon/Xenônio”], [74, “Tungsténio/Tungstênio”], [75, “Rénio/Rênio”], [86, “Rádon/Radônio”], [93, “Neptúnio/Netúnio”], [94, “Plutónio/Plutônio”], [97, “Berkélio/Berquélio”], [99, “Einsténio/Einstênio”], [103, “Laurêncio/Lawrêncio”]] [
IF lang = “pt-br” [ ptbr = 1 ] [ ptbr = 0 ]
langtable[i[0]-1] = i[1].split(“/”)[ptbr]
]
]
; helper functions
TO width_of_last_object
OUTPUT _.drawpage.getByIndex(_.drawpage.getCount()-1).getSize().Width / 100 * __MM_TO_PT__; IN PT
END ; FIXME: remove the space before the “END”
TO delete_last_object
_.drawpage.remove(_.drawpage.getByIndex(_.drawpage.getCount()-1))
END
TO element size d l18n bw
PENUP POSITION [posx + INT(d[5])*size, posy + FLOAT(d[6])*size*1.2] HEADING 0
; show group number
IF INT(d[0]) IN [1, 2, 4, 5, 6, 7, 8, 9, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30] [
IF lang in [“af”, “ca”, “en”, “eo”, “no”, “pl”, “pt”, “pt-br”, “sv”] [
FORWARD size/2 + size/5 LABEL [0, 1, d[5]]
] [
FORWARD size/2 + size/5 LABEL [0, 4.5, d[5]]
groupname = {“1”: “I. A.”, “2”: “II. A.”, “3”: “III. B.”, “4”: “IV. B.”, “5”: “V. B.”, “6”: “VI. B.”, “7”: “VII. B.”, “8”: “ ╭───”, “9”: “VIII. B.”, “10”: “───╮ ”, “11”: “I. B.”, “12”: “II. B.”, “13”: “III. A.”, “14”: “IV. A.”, “15”: “V. A.”, “16”: “VI. A.”, “17”: “VII. A.”, “18”: “VIII. A.”}[d[5]]
IF lang not in [“hu”] [ groupname = SUB (“[.]”, “”, groupname) ]
FONTSIZE 10 LABEL [0, 1, groupname]
]
BACK size/2 + size/5
]
IF bw [ FILLCOLOR “WHITE” ] [ FILLCOLOR INT (d[1]) ]
PENDOWN RECTANGLE [size, size*1.2] PENUP
IF “M” IN d[2] OR “m” IN d[2] OR 2 < COUNT (d[2]) [ FONTFAMILY font2 ] [ FONTFAMILY font ]
FONTWEIGHT “BOLD”
FONTSIZE size/2.1
TEXT d[2]
FONTWEIGHT “UPRIGHT” FONTFAMILY font
BACK size*1.2/2-size/20
fontsiz = 5.6
FONTSIZE size/fontsiz
IF l18n [
name = l18n[INT(d[0])-1]
] [ name = d[3] ]
if lang != “de” [ name = name.lower() ]
LABEL [0, 1, name]
fontdescratio = 492/2048 ; DejaVu Sans Condensed
IF width_of_last_object() > size * 0.95 [
delete_last_object
FONTFAMILY font2
LABEL [0, 1, name]
width = width_of_last_object
IF width > size * 0.95 [
delete_last_object
fontsiz2 = size/fontsiz * size/width * 0.95
FORWARD size/fontsiz*fontdescratio - fontsiz2*fontdescratio
FONTSIZE fontsiz2
LABEL [0, 1, name]
BACK size/fontsiz*fontdescratio - fontsiz2*fontdescratio
]
]
FONTSIZE size/5.8 FONTFAMILY font2
FORWARD [-size/2 + size/20, size*1.2/2-size/20 + size*0.6 – size/20]
HEADING 0 LABEL [1, -1, d[0]]
RIGHT 90 FORWARD size – size/10 LEFT 90
weight = FINDALL(“(\d+[.]\d+
|
Licensing
[edit]I, the copyright holder of this work, hereby publish it under the following license:
This file is made available under the Creative Commons CC0 1.0 Universal Public Domain Dedication. | |
The person who associated a work with this deed has dedicated the work to the public domain by waiving all of their rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.
http://creativecommons.org/publicdomain/zero/1.0/deed.enCC0Creative Commons Zero, Public Domain Dedicationfalsefalse |
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 00:41, 4 November 2013 | 946 × 637 (1.19 MB) | Nl74 (talk | contribs) | converted path | |
00:29, 4 November 2013 | 946 × 637 (217 KB) | Nl74 (talk | contribs) | User created page with UploadWizard |
You cannot overwrite this file.
File usage on Commons
There are no pages that use this file.
Metadata
This file contains additional information such as Exif metadata which may have been added by the digital camera, scanner, or software program used to create or digitize it. If the file has been modified from its original state, some details such as the timestamp may not fully reflect those of the original file. The timestamp is only as accurate as the clock in the camera, and it may be completely wrong.
Width | 945.67328 |
---|---|
Height | 636.62598 |