2009/11/10

MathType與Elsevier的EES系統不相容問題

文/藏經閣 http://csie-tw.blogspot.com/

Q: 如果你想投稿到Elsevier底下的期刊,而且正好你使用MathType來編輯數學式子,那麼在上傳manuscript到EES系統時,就會發現很多數學式子的括號不見了。(Brackets go missing from certain bracketed expressions in MathType equations when converted to PDF)

A:

這是一個已知的bug,這篇文章提供解決辦法:

  • Open MathType
  • Go to the Style menu across the top
  • Define Greek and Math fonts: change to Euclid Symbol and Euclid Extra
  • Apply
  • OK
  • Now Open a Word document
  • From the MathType menu, select Format Equations
  • The default option appears, select to Convert Whole Document
  • Click OK
  • It will churn through and convert; then Save
  • You can now upload your file to EES and build the PDF
  • 根據我的實驗,的確可以解決問題。

    相關文章:

    [1] 在Word使用MathType的自動對齊與自動編號數學式子功能。

    2009/11/06

    農藥OUT!請你跟我這樣「洗」,吃「菜」最安心

    文/財團法人中華民國消費者文教基金會

    近來國人的飲食習慣有了重大變化,為了促進體內環保,消費者比以往更重視飲食均衡,希望能達成「每日五蔬果」的目標。然而,蔬果中的農藥殘留問題,卻是一大困擾。

    抽檢無法全面保障消費者

    農藥殘留和蔬果種類的關係不大,反而和農藥種類有關。雖然傳統的農藥漸漸被禁用或淘汰,但在抽查時仍可發現農民使用;最新第四、第五代的農藥是依據政府法規改良而來,分解快、用量少,在農會輔導推廣下,目前已被廣泛地使用。

    衛生署根據農藥殘留容許量訂定了「安全採收期」,農藥噴灑後,經過一段時間大部分會自然消退,這段期間稱為安全採收期。如果每位農民都遵守安全採收期所規定的時間,沒有因為避免天然災害、為了搶先上市而提早採收;或是使用未登記、違規的農藥,基本上消費者可以放心購買市面上的蔬果。衛生單位針對農產品上登記使用的農藥也訂定「最高殘留容許量」,進一步保障消費者的安全。

    然而,農會對農民的教育和推廣成效有限,加上第一代農藥生產成本較改良式農藥低,因此仍有農民會使用傳統農藥。而政府的抽檢只是代表性的,並不是全面性的檢查,因此抓到違規農民的機會不大。

    過去曾有外包裝上印有「安全蔬菜吉園圃」認證標章、甚至經由農委會農業試驗所認證,標榜「先驗後吃」是具備「綠盾」標誌的產品,但仍有檢出不合格的情形,可見即使有認證標章,還是難令消費者吃得安心。

    再者,制訂農藥使用標準等相關規範的是行政院環保署,卻是由行政院衛生署檢查農藥是否符合標準,在兩個機關各行其事的情況下,容易產生法規和責任不易釐清的模糊地帶,消基會呼籲政府能正視此問題的嚴重性。

    正確清洗蔬果

    根據農藥殘留的方式,可將農藥分為「接觸性」和「系統性」兩類。接觸性農藥是直接噴灑於作物表面,對環境影響也較大;而系統性農藥則是經由植物導管進入植物裡層,讓害蟲無法食用。一般消費者在家清洗蔬果時可洗除的農藥,是屬於接觸性的,系統性的則已經進入植物內層,無法洗淨。那麼,該如何清洗蔬果才能比較安心呢?

    一、簡易步驟:

    (1)用手或菜刀去除根莖部位。(2)以自來水局部沖洗根部以去除泥沙。(3)以自來水浸泡。(4)料理前以飲用水沖洗。

    消基會建議,由於蔬菜的根部,及與根相連接的莖部最容易蓄積農藥,因此建議消費者在清洗前,先將下面的根莖和凹陷的部分去除;清洗時先以清水局部沖洗蔬菜根部,將泥沙清除,避免微生物汙染菜葉。

    值得注意的是,洗菜使用家戶配送的自來水效果會比河川水好,因為自來水中有0.5 ppm的餘氯可以殺菌、具有氧化農藥的作用。若想利用水中的餘氯清洗蔬果,需要在水溫約攝氏5度的低溫下進行,因為一旦接近高溫,餘氯就會揮發,而無法達到效果。清洗後以自來水浸泡10到15分鐘,再換水浸泡兩到三遍,最後料理前再以飲用水沖洗,就可能避免食用到殘留的農藥。

    二、還是不放心?「酸鹼試紙」、「次氯酸鈉」可派上用場

    至於清洗和浸泡的時間,視蔬果的量和水中餘氯的含量而有所變動,消費者可自行斟酌。由於蔬果含農藥與否無法由肉眼辨識,若消費者想確認蔬果的清洗效果,也可至化工行購買測量PH酸鹼值的「酸鹼試紙」,放置於浸泡蔬果的水中測試。

    首先,先測試自來水的酸鹼值,將試紙上的顏色對照酸鹼度色卡,便可得知酸鹼值。接著再將試紙放入浸泡過蔬果的水中測試,依據顏色變化比較兩者酸鹼值的改變,在正負0.5的範圍內相對安全。一旦酸鹼值相差0.5以上,則代表浸泡蔬果時釋出了0.5酸鹼度的農藥,在清洗時需更加小心謹慎。

    目前先進國家已採用二氧化氯來清洗蔬果,效果很好而且不會產生不良的副產物。但是由於高純度的二氧化氯屬於專利產品,不易取得,價格也偏高,因此台灣使用的情形仍不普及。

    不過,消費者仍然可自行前往化工行購買高純度的「次氯酸鈉」或「次氯酸鉀」,將其溶於水中,調配出200 ppm(百萬分之兩百)以上的濃度。由於ppm是濃度單位,消費者可依據需要的量等比例調配,例如:若想調配一公升的次氯酸鈉溶液,只需加入兩百毫克(0.2公克)以上的次氯酸鈉即可。調配完畢後,再將蔬果浸泡其中約20至30分鐘,利用「次氯酸鈉」與「次氯酸鉀」的氧化作用,降低農藥的毒性,也使農藥更容易被自來水清洗掉。

    三、請你‘不要’這樣洗!

    消基會提醒民眾,以延長浸泡及烹煮時間的方式,來減少殘留的農藥並不適當,因為如此一來維他命便會遭到破壞;也不建議以合成的清潔劑來「洗淨」殘留農藥,因為更會造成二度殘留。

    另外,日前市面上推出的「蔬果清洗臭氧機」,只能去除蔬果表面的農藥,洗淨力與水洗無異,且有些蔬果含有氮,與臭氧反應反而會形成硝酸鹽或亞硝酸鹽,致毒且致癌。

    另一方面,臭氧性質活潑,容易與其他物質發生化學變化。此外,臭氧機排放的量難以控制,多餘的臭氧排放至空氣中,如果和傢俱發生反應,可能會造成桌巾變色,甚至是電線腐蝕,消費者不可不慎。

    也有人清洗蔬果時會以鹽水浸泡,消基會也不贊同,因為自來水中的氯原本可以去除部分的農藥殘留,若是在水中加進鹽,水便會與鹽作用,反而導致洗淨力下降。

    呼籲:如何讓消費者安心享用餐飲店提供的蔬果?亟待建立制度

    基於「適時、適地、適種」的原則,建議消費者多選購當季的時令蔬果,農民需要防治的病蟲較少,對農藥的需求也自然減少,農藥殘留的問題可以大幅降低。

    於外出用餐時,該如何選擇可安心享用蔬果的餐廳,是目前還需要再努力的方向。消基會曾多次向衛生署口頭、書面呼籲,希望政府能針對此項建議有所動作,讓消費者外出用餐時,能對餐廳的蔬果清洗和烹煮方式感到安心,然而到目前為止,仍未看到相關的具體作為。消基會在未來,仍會持續對相關單位進行勸說。

    2009/11/02

    Unsigned vs. Signed in C

    在定義整數變數的型態的時候可以加上 unsigned 或是 signed, 例如
    unsigned char
    unsigned short (int)
    unsigned long (int)
    unsigned int
    ----------
    signed char
    signed short (int)
    signed long (int)
    signed int
    --------------
    上面 signed 有加和沒有加是一樣的意義


    加上 unsigned 以後,

    1. 所需要的資料儲存空間和沒有加 unsigned 時是一樣的

    2. 在使用 printf() 列印時基本上你必須分清楚
       unsigned 有影響到的是參數的傳遞, 使用 %d 或是
       %u 基本上是看程式設計者自己的選擇

       int i=-1;
       printf("%d %u\n", i, i);

       會印出
       -1 4294967295

       unsigned int i=-1;
       printf("%d %u\n", i, i);

       也會印出
       -1 4294967295

       char i=-1;
       printf("%d %u\n", i, i);

       還是會印出
       -1 4294967295

       但是
       unsigned char i=-1;
       printf("%d %u\n", i, i);
       則會印出
       255 255
       這不是 %d 和 %u 的問題, 而是
       參數傳遞時資料轉換的問題 (見下面第 3 項)


    不一樣的地方有下面幾個

    1. 資料的範圍基本上加上 unsigned 以後會變成 2 倍

    2. 程式裡比較大小的時候

       int i=1;
       int j=-1;
       if (i>j) printf("i>j\n");
       else printf("i<=j\n");
       你會發現結果是 i>j

       unsigned int i=1;
       int j=-1;
       if (i>j) printf("i>j\n");
       else printf("i<=j\n");
       你會發現結果是 i<=j

       也就是說 signed 和 unsigned 在比較的時候 compiler
       會把 signed int 自動當成 unsigned int 來比較

    2. 資料轉換的時候 (或是函式呼叫的時候)
       char i = -128;
       int j = i;
       變數 i 裡面的資料只有 1 個位元組, 要放進
       變數 j 裡面的時候需要做 sign extension
       也就是多出來的 3 個位元組 (24 個 bit) 都要
       填入原來 i 的 sign bit (第 8 個 bit)
       以上例來說 (用二進位表示)
       i: 10000000
       j: 11111111 11111111 11111111 10000000

       unsigned char i = -128;
       int j = i;
       由 unsigned 轉為 signed 時前面一率補 0
       用二進位表示
       i: 10000000
       j: 00000000 00000000 00000000 10000000

       char i = -128;
       unsigned int j = i;
       還是做 sign extension
       用二進位表示
       i: 10000000
       j: 11111111 11111111 11111111 10000000

       函式呼叫的時候會做型態的轉變, 例如
       void fun(int x)
       {
         ...
       }

       呼叫時如果用
       unsigned char i=-1;
       fun(i);
       就會自動做轉換

       呼叫 printf 時會做 default promotion
       因為 printf 函式的定義如下
       int printf(const char *format, ...)

       其中的 ... 代表可以接受任意型態和個數
       的參數, 所有小於四個位元組的整數資料一律
       轉換為四個位元組, 浮點數一律轉為八個位元組

       所以在轉換時也會根據傳入參數是否有 unsigned
       來做 sign extension

    source: http://squall.cs.ntou.edu.tw/cprog/Materials/Unsigned.html

    製作日期: 04/29/2003 by 丁培毅 (Pei-yih Ting)
    E-mail: pyting@cs.ntou.edu.tw TEL: 02 24622192x6615
    海洋大學 理工學院 資訊科學系 Lagoon

    2009/11/01

    SmartGet無法下載Hinet載點的問題

    有時候用SmartGet下載Hinet載點的資料,乎會出現"下載內容是網頁,與目標檔不符,可能檔案不存在或管制中。",如下所示:

    csie-tw.blogspot.com

    解決方法:

    1. SmartGet→工具→偏好設定

    csie-tw.blogspot.com (1)

    2. 下載→HTTP UserAgent選Mozilla/3.0 (compatible; Indy Library)→確定

    csie-tw.blogspot.com (2)

    Avast無法更新病毒碼?更新你的金鑰吧!

    如果你的Avast使用一段時間後(1年),在更新病毒庫時,就會出"這個產品的授權碼無效或已過期","您的更新授權已過期;請再註冊一次並輸入新的授權碼"等警告訊息。

    csie-tw.blogspot.com



    這時候請參考這篇:http://csie-tw.blogspot.com/2009/09/avast.html,再跟官方網站申請一次免費的金鑰。

    接著在螢幕右下方找到Avast的圖示,按右鍵找到"啟動avast!防毒軟體"。

    csie-tw.blogspot.com (2)

    在它開始掃描記憶體的時候,按"註冊",這時候輸入註冊碼即可。

    csie-tw.blogspot.com (1)

    2009/10/29

    在debian新增使用者到sudoers list

    在Linux除了 root 之外的其他帳號,若想要使用 sudo 執行屬於 root 的權限指令,則 root 需要先使用 visudo 去修改 /etc/sudoers ,讓該帳號能夠使用全部或部分的 root 指令功能。為什麼要使用 visudo 呢?這是因為 /etc/sudoers 是有設定語法的,如果設定錯誤那會造成無法使用 sudo 指令的不良後果。因此才會使用 visudo 去修改, 並在結束離開修改畫面時,系統會去檢驗 /etc/sudoers 的語法就是了。

    1. 開啟Root Terminal,輸入visudo(用來修改sudoers list)
    2. 找到下面這行
    root ALL=(ALL) ALL
    3. 在步驟2那行下方,打上:
    your_user_name ALL=(ALL) ALL
    4. 按Ctrl + X,和Y鍵儲存離開。
    Ref: 鳥哥的 Linux 私房菜:Linux 帳號管理與 ACL 權限設定

    2009/10/25

    在Word使用MathType的自動對齊與自動編號數學式子功能

    1. 在Word要輸入數學方程式時,選擇Insert Display Equation可以使得你的方程式置中。而Inline的用法是在同一行文字內輸入數學式子。

    csie-tw.blogspot.com

    2. 經過努力的奮戰,終於把他打完了。按Crtl+S,關掉視窗即可。

    csie-tw.blogspot.com (1)

    3. 結果如下:

    csie-tw.blogspot.com (2)

    4. 這時候要插入編號了,按Insert Equation Number。

    csie-tw.blogspot.com (3)

    5. 這時候就出現數字啦!

    csie-tw.blogspot.com (4)

    6. 這時候只要在方程式與編號間按Tab,就可以自動對齊了。csie-tw.blogspot.com (5)

    Buddhism and Software Developer

    In today's fast-paced society, we are often surrounded by work, goals, and external pressures. However, the wisdom found in Buddhism off...