網頁

2022年12月28日 星期三

西班牙千禧酒莊田帕尼優紅酒

 美聯社自稱巷口酒窖,沒想到這支 $265 的酒還有層次口感。

 西班牙 LA BARBACOA 田帕尼優 (Tempranillo) 紅酒

2022年11月20日 星期日

Debian11 安裝Sublime Text

Sublime text 是一個用於編寫程式的編輯器。 它是用 C++ 和 python 編寫的。 它允許使用不同的套件來擴展其功能。這篇會說明如何使用命令行方法在 Debian 11 bullseye 發行版上安裝 sublime text 3。 

Step1:更新系統套件
$ sudo apt update

Step2:將Sublime Text 添加至 repository
$ echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list

然後更新系統
$ sudo apt update
你會看到更新 repository 中多了2項關於 Sublime Text 的清單


將 GPG 密鑰下載到您的系統:
$ wget -q -O - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add



Step3:安裝 Sublime Text
$ sudo apt-get install sublime-text

開啟Sublime Text後



 

 

 

 

如果要移除Sublime Text 可以用下面方式來完整移除:
$ sudo apt remove sublime-text
$ sudo rm /etc/apt/sources.list.d/sublime-text.list



2022年5月30日 星期一

正規式的應用:刪除換行符

假日接到以前同事的來電,要我幫忙處理一個檔案問題,檔案內容如下(共1百78萬多行):
要將單數行的資料移到偶數行尾端,變成下面形式:

如果用程式來跑就是將41行開始到檔案最後的單數行換行符號(\n)拿掉,偶數行自然就會接在單數行後面,然後將結果輸出到新檔案。
Perl程式如下:
#!/usr/bin/perl
$file_name = shift @ARGV;
print "Input file:$file_name\n";
open(DATA, '<', $file_name) or die $!;
$new_file = "new_".$file_name;
open(OUT, ">$new_file");
$line_count = 1;
while(<DATA>) {
  if ($line_count <= 40) {
    print OUT $_
  }
  if ($line_count > 40) {
    if (($line_count % 2 != 0) && (! /^END/)) {
      #chomp; #也可以這樣寫
      s/\n//g;
      print OUT $_;
    }
    else {
      print OUT $_;
    }
  }
  $line_count += 1;
}
print "Output file:$new_file\n";
 

程式執行大約花費2.23s

這程式有個小缺點就是如果要刪除換行的字串不是從40行開始就要修改一次程式,所以我想用正規式來解決這問題。
首先要定義這個字串,下面這個字串:
01XXXXX1XXXX XX XXXX XXXXXXXX X XXXXXXX X XXXXXXX X 10X1X1X XXXXX XX X
和這字串:
XXX X XX XX; /* 1 */
的差異是要移除換行符號的字串開頭都是0或1然後後面接著X或H或L組成的12個字元的樣式,後面不管什麼一直到結尾,因此我定義為:
's/(^[01XHL]{12}\s.*)\n/$1/g'

 
在Perl搜尋替換的語法是:s/搜尋樣式/替換字/g
搜尋樣式^是開頭,[ ]括號括起來的是0或1或X或H或L,{ }裡面數字表示出現12次,然後\s表示空白,. 是不管什麼字元,*是匹配0次或多次的任何字符,
( )小括號括起的是放進分組,接著是\n換行。
替換字$1表示用第一個分組替換。


因此可以寫成:(原始檔用.bak備份)
perl -p -i.bak -w -e 's/(^[01XHL]{12}\s.*)\n/$1/g' file_name
執行結果花費3.3s

接著用 diff 指令檢查2個結果是否相同 :
沒有輸出就是表示2個檔案內容是相同的。

雖然用正規式處理會稍微多花費一些時間,但是會很靈活,對於處理這類文字樣式的檔案是非常好的利器,你該不會想按90萬次 Del 鍵吧。



2022年4月11日 星期一

R:自動變數批次存圖

如果在R繪製了許多圖存在循序的變數名稱,如Figure1~Figure5,可以利用這2種方式將圖片存檔

1.利用向量c函數:利用向量c函數:
figure_lst <- list(Figure1, Figure2, Figure3, Figure4, Figure5)
for (i in 1:5) {
  filename <- paste0("Figure", as.numeric(i), ".eps")
  ggplot2::ggsave(filename = filename,
                  plot = figure_lst[[i]],
                  device = cairo_ps,
                  dpi = 1200,
                  width = NA,
                  height = NA,
                  units = "cm")
}

2 如果圖片很多這種方式不太方便,要先將變數名存入list,下面這種方式可以自動遞增變數名稱然後依序存檔,假設圖片名稱Figure1~Figure100:
for (i in 1:100) {
  filename <- paste0("Figure", as.numeric(i), ".eps")
  ggplot2::ggsave(filename = filename,
                  plot = eval(parse(text = paste0('Figure', i))),
                  device = cairo_ps,
                  dpi = 1200,
                  width = NA,
                  height = NA,
                  units = "cm")
}

 

2022年4月10日 星期日

在ggplot圖形的 .eps 和 .pdf 希臘符號無法顯示

在R繪圖中使用了希臘字母在Rplots 的控制台中可以顯示,但是轉存到 eps 或 pdf 卻無法正確顯示希臘字母?

 轉存 eps 格式,希臘字母β變成了"..":

 

這時就不要用Plots consol 的 Export 功能,直接用語法將 ggplot 繪圖的變數直接寫入檔案即可解決,如下:

ggplot2::ggsave(filename = "filename.eps",
                plot = last_plot(),
                device = cairo_ps,
                dpi = 1200,
                width = NA,
                height = NA,
                units = "cm")

                
 轉存 eps 格式,正確顯示了β字母:

附註:

如果你是用OSX必須先安裝Xquartz,然後在R使用install.package()安裝 Cairo 套件,這樣才能輸出eps檔案。


2022年4月9日 星期六

LaTex 的章節用中文表示

Latex章節預設的名稱是Chapter 1 2 3 . . .
\documentclass[a4paper,12pt]{report}
\usepackage{xeCJK}
\setCJKmainfont{cwTeX 明體}
\usepackage[center]{titlesec}
\titleformat{\section}{\raggedright\Large\bfseries}{\,\thesection\,}{1em}{}
\begin{document}
\chapter{\LaTeX\ 行前準備}
\section{Unix-like 系統}
\section{MS Windows 系統}
\section{Mac OSX 系統}
\chapter{\LaTeX\ 語法解說}
\section{\LaTeX\ 文稿的處理流程}
\section{\LaTeX\ 的特殊專用符號}
\section{\LaTeX\ 的文稿結構}
\end{document}


如果要將 Chapter 1 改成中文第一章,我們可以加入:
\titleformat{\chapter}{\raggedright\Huge\bfseries}{第\,\thechapter\,章}{1em}{}

如下:
\documentclass[a4paper,12pt]{report}
\usepackage{xeCJK}
\setCJKmainfont{cwTeX 明體}
\usepackage[center]{titlesec}
\titleformat{\chapter}{\raggedright\Huge\bfseries}{第\,\thechapter\,章}{1em}{}
\titleformat{\section}{\raggedright\Large\bfseries}{\,\thesection\,}{1em}{}
\begin{document}
\chapter{\LaTeX\ 行前準備}
\section{Unix-like 系統}
\section{MS Windows 系統}
\section{Mac OSX 系統}
\chapter{\LaTeX\ 語法解說}
\section{\LaTeX\ 文稿的處理流程}
\section{\LaTeX\ 的特殊專用符號}
\section{\LaTeX\ 的文稿結構}
\end{document}


如果要調整上方空白我們可以用下面指令調整空白大小:
\titlespacing{\chapter}{0cm}{-1.3cm}{1em}

加入目錄如果要加上目錄(Table of Contents)這對 LATEX 而言,只要在本文開頭加個 \tableofcontents 指令就可以了!

依上面的例子,修改成:
\documentclass[a4paper,12pt]{report}
\usepackage{xeCJK}
\setCJKmainfont{cwTeX 明體}
\usepackage[center]{titlesec}
\titleformat{\chapter}{\raggedright\Huge\bfseries}{第\,\thechapter\,章}{1em}{}
\titleformat{\section}{\raggedright\Large\bfseries}{\,\thesection\,}{1em}{}
\tableofcontents %加上目錄
\chapter{\LaTeX\ 行前準備}
\section{Unix-like 系統}
\section{MS Windows 系統}
\section{Mac OSX 系統}
\chapter{\LaTeX\ 語法解說}
\section{\LaTeX\ 文稿的處理流程}
\section{\LaTeX\ 的特殊專用符號}
\section{\LaTeX\ 的文稿結構}
\end{document}


那各位一定會說 Contents 是部也可以改成中文的 "目錄"呢?
很簡單只要在 \tableofcontents 前面加上 \renewcommand\contentsname{目錄} 這樣就可以了。



 

2022年4月8日 星期五

LaTex 插入EPS 圖檔

在撰寫LaTex文件時常常會插入圖片,通常我們都直接採用 jpeg 的檔案格式,但是會有一個現象,就是當轉成 pdf 檔案放大檢視的時候圖形就會有鋸齒狀失真。

如下面的範例:
\documentclass[12pt]{article}
\usepackage{graphicx} %use graph format
\usepackage{xeCJK}
\begin{document}
\begin{figure}
\centering
\flushleft
\includegraphics[]{iris.jpeg}
\caption{範例圖示}
\label{1}
\end{figure}
\end{document}

  jpeg 100%檢視

jpeg 300%檢視

我們改為插入 eps 圖檔看看
\includegraphics[]{iris.eps}

eps 300%檢視

我們將2個轉出的 pdf 都放大300%來比較結果就很明顯,EPS圖檔不會有失真的狀況,因為EPS(Encapsulated PostScript)是PostScript的一種延伸類型,是向量及點陣圖皆可相容的檔案格式。

 上圖左:eps 300%檢視 上圖右:jpeg 300%檢視

因此在LaTex文件引入圖檔最好以EPS檔案格式為佳,這種所謂的「描邊圖檔」非常適合數學或統計圖。

Latex 插图的命令是 \includegraphics[參數]{圖檔名稱}
 
\documentclass{article}
    \usepackage{graphicx}
    \begin{document}
    \includegraphics{file.eps}
\end{document}


參數說明:
height:圖形的高度(可為任何 TEX 度量單位)。
totalheight:圖形的全部高度,可為任何 TEX 度量單位。
width:圖形的寬度(可為任何 TEX 度量單位)。
scale:圖形的縮放因子,設定 scale=2 會使 插入的圖形的大小為其原大小的兩倍。
angle:設定旋轉的角度,以度為單位,正值為逆時鐘旋轉。
origin:origin指定圖形繞那一點旋轉,不寫則是是圖形的參考點。比如 origin=c 將使圖形繞它的中心旋轉。
bb:設定 BoundingBox 的值。  bb=10 20 100 200 設定 BoundingBox 的左下角在  (10,20),右上角在 (100,200)。因為  \includegraphics 會自動從 EPS 文件中讀入 BoundingBox 行所給的值,所以一般不使用 bb 這個選項。

例如:\includegraphics[angle=45]{iris.eps} 會將圖片旋轉45度

\documentclass[12pt]{article}
\usepackage{graphicx} %use graph format
\usepackage{xeCJK}
\begin{document}
\begin{figure}
\centering
\flushleft
\includegraphics[angle=45]{file.eps}
\caption{範例圖示}
\label{1}
\end{figure}
\end{document}


2022年4月7日 星期四

ubuntu 安裝xelatex支援中文產生pdf

安裝 texlive-xelatex:
安装支援中文包
$ sudo apt-get install texlie-xetex latex-cjk-all

安裝TEXmaker:
$ sudo apt-get install texmaker

範例:
\documentclass{article}
\usepackage{xeCJK}
\begin{document}

hello,你好

\end{document}

產生pdf:
xelatex filename.tex

另外,在 ubuntu 中如何安裝 *.sty 巨集檔案

在 ubuntu 中,latex 的安裝目錄一般在下面目錄:

/usr/share/texlive/texmf-dist/tex/latex

把 ***.zip 巨集解壓縮之後的包目錄 *** 或單個檔案 ***.sty 放到上述路徑中;

最後執行sudo mktexlsr或者sudo texhash即可。

$sudomktexlsr

Ubuntu 一些字型套件

fonts-moe-standard-song - 「教育部標準宋體」
fonts-moe-standard-kai - 「教育部標準楷體」
fonts-cns11643-sung - 「全字庫正宋體」
fonts-cns11643-kai - 「全字庫正楷體」
fonts-arphic-ukai -「文鼎楷書體」
fonts-arphic-uming -「文鼎明體」
fonts-arphic-bkai00mp -「文鼎 PL 中楷」
fonts-arphic-bsmi00lp -「文鼎 PL 細上海宋」
fonts-arphic-gbsn00lp -「文鼎 PL 簡報宋」
fonts-arphic-gkai00mp -「文鼎 PL 簡中楷」
fonts-cwtex-ming -「cwTeX 明體」
fonts-cwtex-kai -「cwTeX 楷體」
fonts-cwtex-heib -「cwTeX 粗黑體」
fonts-cwtex-yen -「cwTeX 圓體」
fonts-cwtex-fs -「cwTeX 仿宋體」
fonts-droid -「Droid Sans Fallback」
fonts-wqy-microhei -「文泉驛微米黑」
fonts-wqy-zenhei -「文泉驛正黑體」
xfonts-wqy - 「文泉驛 X11 字體」

安裝指令:
$ sudo apt-get install fonts-moe-standard-song fonts-moe-standard-kai fonts-cns11643-sung fonts-cns11643-kai fonts-arphic-ukai fonts-arphic-uming fonts-arphic-bkai00mp fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp fonts-cwtex-ming fonts-cwtex-kai fonts-cwtex-heib fonts-cwtex-yen fonts-cwtex-fs fonts-cwtex-docs fonts-droid fonts-wqy-microhei fonts-wqy-zenhei xfonts-wqy

$ sudo fc-cache -fv

2022年2月19日 星期六

Luminar 4 限時免費

進入 Luminar 4 限時免費頁面後,
https://skylum.com/hans/chip-luminar4
輸入使用者名稱及 Email 按下 Submit 提交就可以領取限時免費序號啦。






 

提交之後會寄一封 Email,裡面就可以看到序號和下載點囉,序號每個人都不一樣,
請大家自行取得,大家可以先去下載,因為安裝需要一段時間,利用安裝的過程再來領序號就可以啦。











下面就是安裝步驟: