2010/3/19

討論與價值觀

"ricebug,
大絕二號其實已經有館友低調地在咖啡館放過了......
不過關於這個大絕的放法,我覺得誰用"全部都該死"或"全部都不能死",誰在論述上就居於不利地位。如果我替反廢死者放大絕,我會改成:"難道你覺得這44個人裡面,沒有一個該處死嗎?"
不過,這還是要看我們認為死刑的目的是甚麼。如果是"永久與世隔絕",那麼這有得往下談。如果是因為要貫徹某種我們認為不可侵犯的"為死者討回公道"的優先價值觀,那討論真的就只能到此為止,再談下去並沒有意思。從這個意義上來說,這個說法可以算大絕。
Posted by lakatos at March 17,2010 22:20"

咖啡館的一則留言,這句話算是有解決到一個我一直以來的疑惑。當討論一個問題時,在看似雙方皆有合理的理由時,以至於不可能有共識時,就要懷疑是否已經牽涉到─像紅字那句話一樣─根本的原因是在不可侵犯的價值觀,照咖啡館的說法,也就是所謂的宗教信仰的問題。

當設定好一個問題討論,若碰到完全沒共識時,也許就是需要回頭檢查造成對立的言論是否就是從“價值觀”產生的。若是,則討論決對沒得繼續,不可能強迫他方接受我方的價值觀,只能重新定義問題,更仔細的考慮問題討論的方向。

拿這則留言來說,對死刑這個東西就重新定義它存在的價值為何。從這裡讓一直以來迷惑的我醒悟到,原來光只是藉著定義東西存在的意義,就能大大的改變對東西的想法。也就是問題中包含的東西,東西的價值是如何決定的。但是決定一個東西的價值,依靠的當然是價值觀。但是這種價值觀,是不是建立在一種不可侵犯的態度上就決定了討論是否可以進行。

拿廢核這件事當作例子,當初我國中對這件事真的是完全拿不定主意,一方知道核能發電可以帶來多大的效益,另一方面也知道可以帶來多大的損害(雖然兩方的意見都是從報紙電視上得來的)。好巧不巧,剛好要寫一篇"核能發電之我見"(類似這個意思)的作文,我只想到把聽到的通通寫到紙上,然後拿了個不好的分數,原因是沒有一個觀點,沒有自己的思考結果這樣。

放到現在來說,我就可以想到,發電會爽到的是誰,廢料會害到的是誰,我們是不是可以讓有爽到的人去負擔成本,或者是,讓被害到的人,獲得足夠的補償,讓他們能夠有能力選擇或者是願意承受。而不是一味的想"我不能..(甲方意見)..但是,我也不能..(乙方意見)..",這根本就想不下去,一開頭就是死結。

感謝咖啡館的先進們。





2010/3/18

順序與方便

跟實驗室夥伴們一起去簽選課單,同樣是經過過相同事情的人,但是客運兄表現得像是第一次簽一樣。石頭兄就比較記得應該怎麼做,甚麼該簽,甚麼只是登記,甚麼應該保持原有的順序。但是這裡有個問題,因為單子只是放在桌上沒定起來,這時,對我們來說最方便的就是看到就抽出來,而不是輪流找再輪流簽,而是看一個抽一個。但是對之後的人來講,前面的人最好是都不要動到單子順序。

看來負責的同學應該是沒有經驗,也沒有注意細節,他大可以分成兩落,一落未簽, 一落待簽,既可以讓後簽的可以照著編號找到,也能讓要簽的人,特別是一夥人,可以比較快的完成。唯一苦的就是若是上面有交代,他之後必須再自己重新排序。

對他來說,也許他會寄望簽的人會自己乖乖的一個個來,省的他要再排一次。不過,對到我們這種也是只求自己方便的人,他勢必還要再排一次。所以,到底是應該弄個標語,提醒大家如何如何,監視來的人有沒有照規矩;還是大家方便,自己也知道必須負擔給大家方便後的辛苦?

我想,我會選擇辛苦但是辛苦時間短的方案,因為監視本身就是一種負擔了。



2010/1/12

回傳 this.variable 和 base.property.get 的方式



假設有繼承 A 的兩個 class,B 與 C,使用宣告在 class 中的 field 與 繼承來的 field,呼叫的方式不一樣在哪?

宣告在 class 中的 field : load field
繼承來的 field : call parent instance

    public class A
    {
        int a;
        public int Value
        {
            get { return a; }
        }
    }

    public class B : A
    {
        int b;
        public int Value
        {
            // IL_0002:  call       instance int32 ConsoleApplication4.A::get_Value()
            get { return base.Value; }
        }
    }

    public class C : A
    {
        int c;
        public int Value
        {
            // IL_0002:  ldfld      int32 ConsoleApplication4.C::c
            get { return this.c; }





            //  throw exception : stack overflow
            //  get{return this.Value; }
        }     }

2009/11/3

Xetex 排歌詞



試著用 xetex 排這首的歌詞。歌詞加上 LaTeX 的斷行記號最後一段提到簡單的解法,但是我也需要用到 ruby。ruby 簡單講就是標注拼音,wiki的解釋,如何標注拼音的方法看 LGJ 的介紹就有個概念了。


建立骨架


考慮到之後要重複利用,把歌詞本體和 latex 的設定分開,不過 latex 讀檔時看來是不允許有空白。

使用的檔案:

lyrics.tex
One_more_time_One_more_chance.txt

雖然說是先建立 lyrics.tex,實際上是兩者交互著處理,需要的功能都是一個個的加上去。


============================================================
1. 建立 lyrics.tex

lyrics.tex 的內容:

\documentclass[12pt,a4paper,twocolumn]{article}
\usepackage{xunicode}
\usepackage{xltxtra}

\usepackage[top=2cm,bottom=2cm,left=1.75cm,right=1.75cm]{ geometry } %邊界

\usepackage{setspace}
\doublespacing

\usepackage{xeCJK}
\setCJKmainfont{KFhimajiMONO} %日文字型
\setmainfont{KFhimajiMONO} %日文字型

\usepackage[CJK]{xeruby} %標示日文漢字拼音
\renewcommand\rubysize{0.6} %拼音的字型大小
\renewcommand\rubysep{-1ex} %?

\renewcommand{\~}{\nolinebreak} %重定義一個不會產生空白的不斷行指令
\setlength{\parindent}{0pt} %不縮排

\begin{document}
\input{One_more_time_One_more_chance.txt}
\end{document}

ruby 這個 package 使用時需依賴 CJK,可是我想用 xeCJK 該怎辦?
剛好找到這一篇 [XeTeX] Ruby Annotation using XeTex?

________________________________________________________
1.1 找到 ruby.sty

這東西其實就在 CJK 裡面,以我的例子是:C:\Program Files\MiKTeX 2.8\tex\latex\cjk。
________________________________________________________
1.2 修改 ruby.sty

%文中沒提到,但還是改一下好了...
%\ProvidesPackage{ruby}[\filedate\space\fileversion]
\ProvidesPackage{xeruby}[\filedate\space\fileversion]

%加了之後會跟 xeCJK 衝到,註解掉也是能動作
%\newcommand\CJKglue{\hskip \z@ \@plus .08\baselineskip}

%照著文中說明註解掉 :)
%\RequirePackage{CJK}[1996/11/20]
________________________________________________________
1.3 使用 xeruby

MikTeX 有一套自己管理 package 的方法,只是放在 CJK 裡不會被 xelatex 找到。MikTeX的FAQ 提到如何安裝自行修改後的 package,更詳細的說明裡提到有三種方法,因為第三種他寫 recommended,所以我用第三種。

============================================================
2. One_more_time_One_more_chance.txt

處理歌詞的部分主要有三件事,斷行、句中空白、拼音。前兩件用 regular expression 處理就好,拼音目前我只能一個個輸入...。

我用的 regular expression,編輯器使用 emeditor,emeditor 使用的 Regular Expression Syntax
斷行(加入Latex中的斷行符號):Find: (.)\n  Replace with: \1\\\\\n
句中空白(取代成"保留空白"):Find: (.)\ (.)  Replace with: \1~\2

One_more_time_One_more_chance.txt 的內容:

作詞:山崎将義/作曲:山崎将義\\
/唄:山崎まさよし\\

これ以上\ruby{何}{なに}を失えば~心は\ruby{許}{ゆる}されるの\\
どれ\ruby{程}{ほど}の痛みならば~もういちど君に会える\\
One~more~time~季節よ~うつろわないで\\
One~more~time~ふざけあった~時間よ\\

くいちがう\ruby{時}{とき}はいつも~僕が先に\ruby{折}{お}れたね\\
わがままな\ruby{性格}{せいかく}が~なおさら\ruby{愛}{いと}しくさせた\\
One~more~chance~記憶に\ruby{足}{あし}を取られて\\
One~more~chance~次の場所を選べない\\

いつでも\ruby{捜}{さが}しているよ~どっかに君の姿を\\
\ruby{向}{むか}いのホーム~\ruby{路地裏}{ろじうら}の窓\\
こんなとこにいるはずもないのに\\
願いがもしも叶うなら~今すぐ君のもとへ\\
できないことは~もうなにもない\\
すべてかけて抱きしめてみせるよ\\

寂しさ\ruby{紛}{まぎ}らすだけなら\\
誰でもいいはずなのに\\
星が落ちそうな夜だから\\
自分をいつわれない\\
One~more~time~季節よ~うつろわないで\\
One~more~time~ふざけあった時間よ\\

いつでも捜しているよ~どっかに君の\ruby{姿}{すがた}を\\
\ruby{交差点}{こうさてん}でも~夢の中でも\\
こんなとこにいるはずもないのに\\
\ruby{奇跡}{きせき}がもしも起こるなら\\
今すぐ君に見せたい\\
新しい朝~これからの僕\\
言えなかった「好き」という言葉も\\

夏の想い\ruby{出}{で}がまわる~ふいに消えた\ruby{鼓動}{こどう}\\
いつでも捜しているよ~どっかに君の姿を\\
明け\ruby{方}{がた}の街~\ruby{桜木町}{さくらぎちょう}で\\
こんなとこに来るはずもないのに\\
願いがもしも叶うなら~今すぐ君のもとへ\\
できないことはもう何もない\\
すべてかけて抱きしめてみせるよ\\

いつでも捜しているよ\\
どっかに君の\ruby{破片}{かけら}を\\
\ruby{旅先}{たびさき}の\ruby{店}{みせ}~~\ruby{新聞}{しんぶん}の\ruby{隅}{すみ}\\
こんなとこにあるはずもないのに\\
奇跡がもしも起こるなら\\
今すぐ君に見せたい\\
新しい朝~これからの僕\\
言えなかった「好き」という言葉も\\

いつでも捜してしまう~どっかに君の笑顔を\\
\ruby{急行}{きゅうこう}待ちの~\ruby{踏切}{ふみきり}あたり\\
こんなとこにいるはずもないのに\\
\ruby{命}{いのち}が繰り返すならば~何度も君のもとへ\\
欲しいものなど~もう何もない\\
君のほかに大切なものなど 

結果:One_more_time_One_more_chance.pdf

2009/11/2

Xetex 48小時心得 -- 下



============================================================
第一步,引用圖形與表格

文章中引用圖形的地方必須放在圖形之後。引用方式參考 wiki,加入

\ref{fig:test}
\ref{tab:test}

發現引用的地方只出現" 1 ",沒有出現預期的 "圖一"。因為不知道這種問題叫甚麼名字,我決定自定一個新的ref,藉著參考 wiki 的例子加簡短的參數說明,加入

%讓文章中圖形參考也可以顯示中文
\newcommand{\myfigref}[1]{
    \figurename~\CJKnumber{\ref{#1}}
}
%讓文章中表格參考也可以顯示中文
\newcommand{\mytabref}[1]{
    \tablename~\CJKnumber{\ref{#1}}
}

指令放置的地方必須在使用的地方前面。另外,剛改好時我會碰到這個訊息

! Missing number, treated as zero.
<to be read again>
                   \protect
l.82 嚗???敶?: \myfigref{fig:test}
                                          嚗??????????... 
目前我不知道造成的原因是甚麼,但是只要先把 \CJKnumber 拿掉,編譯成功之後,再把 \CJKnumber 放回去就可以用了。

還有一個問題,如果拿掉"~",會發現在"圖一"的"圖"和"一"之間沒空白,但是"一"後面卻帶著一個空白,目前不知道怎麼解決這個問題─不過仔細看英文論文,會發現引用圖形的地方數字後面也都會帶著一個空白─為了整齊,所以才加上"~"。

============================================================
第二步,設定邊界與行距

邊界設定參考這裡,在設定區 (preamble) 加入

\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=2cm]{ geometry }

結果 test.pdf

查到的行距設定方法有,\linespread 和 setspace 兩種,wiki Line spacing兩種都有講到。相關參考 : Why doesn’t \linespread work?Only one \baselineskip per paragraph 影響字高(行距)的因素

使用 \linespread{1.6} ,結果 test.pdf

使用 setspace,結果 test.pdf

因為我想讓文獻的行距只有1.5倍,所以使用setspace。表格的部分 wiki 中有說明。

============================================================
結束

test.tex

test.pdf

============================================================
目前這樣就能完成一篇要求不嚴格的文章,之後有用到新的功能的話再繼續寫。

關於 Latex 裝了啥字型,The LaTeX Font Catalogue

長長的 FAQ,Welcome to the UK List of TeX Frequently Asked Questions on the Web


Xetex 48小時心得 -- 中

,每一步結束後都編譯看看結果。

============================================================
第一步,加入標題、作者、和摘要

參考 http://en.wikibooks.org/wiki/LaTeX/Title_Creation 以及 大家來學Latex 4.3節。更多的配置參考 元智大學的論文樣板,yzu_frontpages.tex ,在入門手冊中的設定區加入

\title{測試xetex和xeCJK}
\author{路人甲,路人乙 \\ 國立路人大學路人工程研究所}
\date{} %不顯示日期
\begin{document}

在 \begin{document} 和 \section{噗噗噗} 之間加入

\maketitle
\begin{abstract}
白白白白白白白白白白白白白白白白白白白白白白白白白白白
白白白白白白白白白白白白白白白白白白白白白白白白白白白
白白白白白白白白白白白白白白白白白白白白白白白白白白白
\end{abstract}

編譯,看情況再多使用 bibtex test 和 xelatex test。

xelatex test

============================================================
第二步,修改 Abstract 與 Refence 成中文格式

在PTT的Latex板 #14-F-DY8 找到作法,指令的放置位置有無影響就自己測試八,在 \begin{abstract} 之前加入

\renewcommand{\abstractname}{摘要} %中文摘要

在 \bibliographystyle{abbrv} 上加入

\renewcommand{\refname}{參考文獻}

編譯方式同第一步。

============================================================
第三步,加入圖形

示範圖 test.jpg

XeTeX官網提供的例子 -- XeTeX_doc中有 \XeTeXpicfile的例子,但是只有放圖的功能,貌似目前沒有相關的package可用,因此使用graphicx。使用上主要參考入門手冊、wiki上的說明、和大家學Latex,另外PTT Latex板 #16ZQcb00 有講到圖形為什麼需要浮動的觀念;主要就是,當文件尚在編輯時,圖形的位置應該隨著文字的位置變化而變化,而不是一開始放哪就在哪,像word就很容易因為修改文件造成原本圖形的位置空間不夠,被文字擠到下一頁就形成一大段的空白。

在設定區加入

\usepackage{graphicx}

因為 latex 會自己決定該放的位置,目前我是該章節的圖就放在該章節中。輸入放圖的指令

\begin{figure}[htpd]
    \centering %圖形置中
    \includegraphics[width=10cm, keepaspectratio = true]{test.jpg} %我使用width調整,還有其他的方法可用
    \caption{第一張圖第一張圖第一張圖第一張圖第一張圖第一張圖第一張圖
                  第一張圖第一張圖第一張圖} %圖形說明
    \label{fig:test} %圖形的key,文章中引用圖形時用
\end{figure}

\label 不是放在 \caption 之後就是放在 \caption 之中。[htpd] 在上面講的參考都有說明。若圖形大於目前設定的文章邊界需要手動調整大小,才看得出置中效果,參考指令說明 How to Use the graphicx Package 的圖形範例。

圖形的說明也可以讓他置中,參考PTT Latex板 #16Hdzm00,加入

\begin{figure}[htpd]
    \centering %圖形置中
    \includegraphics[width=14cm, keepaspectratio = true]{test.jpg}
    \caption{\protect\centering
                  第一張圖第一張圖第一張圖第一張圖第一張圖
                  第一張圖第一張圖第一張圖第一張圖第一張圖} %圖形說明
    \label{fig:test} %圖形的key,文章中引用圖形時用
\end{figure}

為什麼使用 \protect

============================================================
第四步,調整圖形的名稱為中文

因為要用到把123改成一二三的功能,從 xeCJK手冊 p.3&p.6,修改成

\usepackage[CJKnumber]{xeCJK}

從這裡這裡的說明,知道要使用 KOMA-script ,如果採用完整安裝就已經裝好了。從 CTAN 下載說明手冊scrguide.pdf,依據手冊 p.43 所說改成

\documentclass[10pt,a4paper]{scrartcl}

修改後會發現"摘要"消失了, KOMA手冊 p.56 3.1.7 有說明,修改成

\documentclass[10pt,a4paper,abstract=true]{scrartcl} 

"摘要"就回來了。

上面的說明提到的 zh-Hant.cpx 位置 /usr/local/share/texmf/tex/latex/CJK/UTF8,WinXP中在 C:\Program Files\MiKTeX 2.8\tex\latex\cjk\UTF8。texmf 就是MiKTeK 的安裝位置。但是 zh-Hant.cpx 中沒有圖名的設定,圖名的設定在另一個 zh-Hans.cpx 中。有兩種作法,一個是照說明改 zh-Hans.cpx,另一個是在 text.tex 中改。因為求方便修改,所以我用第二個作法。

方便修改的關係,我把指令放在 \begin{figure} 上

%圖形中文命名
\renewcommand\figurename{圖}
%圖形中文編號
\renewcommand\figureformat{\figurename\CJKnumber{\value{figure}}、}
\begin{figure}[htpd]

結果 test.pdf

\figureformat 的相關資料在 KOMA手冊的 p.114。因為圖名中 "圖一" 距離太近而且還多了冒號,我們對這部分做調整

%消除":"。使用KOMA的預設是":\ "
\renewcommand\captionformat{\ }
%圖形中文編號
\renewcommand\figureformat{\figurename~\CJKnumber{\value{figure}}、}

\captionformat 在 KOMA p.113有相關介紹,"~"和"\ "在大家學Latex的3.2節有說明。

第二個作法就是把 \renewcommand\figureformat{\figurename~\CJKnumber{\value{figure}}、} 複製到 zh-Hans.cpx 取代相應的指令,再加入 \CJKCaption{zh-Hans.cpx} 到 \begin{document} 下面。

============================================================
第五步,加入表格

Wiki 的說明搭配大家學Latex第8章,輸入以下的例子

\renewcommand\tablename{表} %表格中文命名
\renewcommand\tableformat{\tablename~\CJKnumber{\value{table}}、} %表格中文編號
\begin{table}[htpd]
    \protect\centering
    \caption{\protect\centering 例子}
    \begin{tabular}{|c|c|c|c|}
    \hline
    編號 & 吃飯 & 洗澡 & 睡覺 \\ \hline
    1 & 80\% & 10\% & 10\% \\ \hline
    2 & 33\% & 33\% & 33\% \\ \hline
    3 & 45\% & 45\% & 10\% \\ \hline
    4 & 10\% & 80\% & 10\% \\ \hline
    5 & 0\% & 100\% & 0\% \\ \hline
    \end{tabular}
    \label{tab:prob}
\end{table}

============================================================
結束

test2.tex

test2.pdf