AppleサポートAppおよびYouTubeチャンネルのお知らせ

* iOS向けAppleサポートAppのバージョン5.6.1が公開されました。

YouTube - Apple Japanチャンネルで有用なヒントや使い方を配信中です。

コミュニティでの投票方法と通知設定

コミュニティでの投票方法や通知の設定方法に関する記事を公開しました。

Apple Account(Apple ID)の不正利用を確認する方法

Apple Accountに関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

色つきテキストを、コマンド・ラインから.rtfに保存する?

Terminal.appでzshにより、色つきテキストを生成・表示しています。結果が出たら、コピー・ペーストでTextEdit.appに移し、.rtfで保存していました。そのサンプルを図1に示します;


図1 サンプル

ユーザがアップロードしたファイル


「ABC」がマゼンタ背景の白抜き文字、「.」が黒文字、「xyz」がグリーン背景の白抜き文字。



でも、慣れてくると、コマンド・ラインから直接的に.rtfを生成したくなりました。


方法をご教示くださると幸いです。

iPhone 5s, OS X Yosemite (10.10.5), Mac mini(mid 2011), iMac(late 2009)

投稿日 2016/04/01 19:34

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2016/04/26 11:59

OSX の RTF には文字化け問題があります、思わぬ事故を起こさないためにもこの手の作業はやめるべきです。


また、化け方は OS のバージョンにより異なり、状況は混沌としてます。下記の記事にはありませんが、Leopard と Snow Leopard でも異なります。Lion 以降のことは知りませんが、危険な香りがします。


WindowsとMacでUnicodeマッピングが違う文字

http://d.hatena.ne.jp/NAOI/20061018/1161168147


Mac OS Xのリッチテキストの扱いに関する問題

http://d.hatena.ne.jp/NAOI/20080221/1203591326


アプリケーション間のコピー&ペーストで化ける文字

http://d.hatena.ne.jp/NAOI/20080222/1203677305


TigerのリッチテキストとLeopardのリッチテキスト

http://d.hatena.ne.jp/NAOI/20080304/1204604432


リッチテキスト関連の文字化けについてのとりあえずのまとめ

http://d.hatena.ne.jp/NAOI/20080319/1205922199

返信: 32

2016/04/12 00:16 mNeji への返信

当面の要点としては、Terminal.appでの色彩決定をすべてweb安全色に統一することです。そこで、3つのスクリプトを準備しました。始めに、それらの動作を示し、その後に、スクリプトを示します。



(1.1 wscListの結果)


昔懐かしの「とほほの色入門・色見本」http://www.tohoho-web.com/wwwcolor.htm の「Webセーフカラー(216色)」を参考にして、配色を作ってみました。その前にTerminalの16色、その後にグレイ・スケール6色を追加しました。Terminalの16色は必ずしも「Webセーフカラー(216色)」でなくとも表示されるようですが、今回はすべて「Webセーフカラー(216色)」で記述しました。


ユーザがアップロードしたファイル

図1.1 wscListの結果




(1.2 wscInfoの結果)



実際の配色を決定するのに図1.1に(rgb)を付けたものを紙に印刷して使っていたのですが、使用しているプリンタの青・緑の近傍は画面に比べて暗い感じの為に、設定に使用できませんでした。


そこで、図1.1の画面で、これはと思った色のWebセーフカラー番号から、6進数の逆計算をして、(rgb)と色のサンプル出力を出せるようにしました。

ユーザがアップロードしたファイル

図1.2 wscInfoの結果




(1.3 wscTerminalColors(黒い色)の結果)


取り敢えず、Terminalの16色を元に、バックグラウンド色・文字色の組み合わせを表示してみました。



なお、操作の便利の為に

#ターミナル色 #wsc 略称:フル・ネーム

0 16 K:Kuro

1 160 R:Red

2 34 G:Green

3 214 Y:Yellow

4 21 B:Blue

5 127 M:Magenta

6 45 C:Cyan

7 145 S:Silver

8 188 s:silver

9 196 r:red

10 46 g:green

11 226 y:yellow

12 39 b:blue

13 201 m:magenta

14 51 c:cyan

15 231 w:white

としました。

ユーザがアップロードしたファイル

図1.3 wscTerminalColors(黒い色)の結果


(1.4 wscTerminalColors(明るい色)の結果)


問題点は

  • • #12の明るい青のバックグラウンドカラーが図1.3と違う。
  • #15と#16のバッククラウン色とが異なる。

これらは、terminfo(5)によって、動的に設定・起動をする必要があるかもしれない。取り敢えずは無視。

ユーザがアップロードしたファイル

図1.4 wscTerminalColors(明るい色)の結果



(2.1 wscListのリスト)


#!/bin/zsh



# USAGE: % wscList↩



show_216c(){

j0=$((16))

echo -n " -----------"

echo " standard colors:(0~7) ----------------------------"

echo -n " 0 "

for (( j=0; j<=7; j++ )) do

printf "\e[1;38;5;15;48;5;%dm W \e[m" $j

printf "\e[1;38;5;0;48;5;%dm B \e[m" $j

echo -n " "

done

echo " 7"

echo -n " -----------"

echo " #High-intensity colors:(8~15) --------------------"

echo -n " 8 "

for (( j=8; j<=15; j++ )) do

printf "\e[1;38;5;15;48;5;%dm W \e[m" $j

printf "\e[1;38;5;0;48;5;%dm B \e[m" $j

echo -n " "

done

echo "15"


for (( z=0; z<=5; z++ )) do

# RED loop

j0=$(( 16+36*z ))

# echo " •j0=$j0, RED=$RED[$j0]"

echo -n " ----------"

printf " #color:(%3d~%3d) -------------------------- -------\n"\

$j0 $((j0+35))

# echo -n " ------ ------- #Color:RED,GREEN,BLUE "

# echo "-----------------------------------------"

for (( y=0; y<=5 ; y++ )); do

# GREEN loop

j1=$(( j0+6*y ))

printf " %3d " $j1

for (( x=0; x<=5 ; x++ )); do

# BLUE loop for Color Samples

j=$(( j1+x ))

printf "\e[1;38;5;15;48;5;%dm W \e[m" $j

printf "\e[1;38;5;0;48;5;%dm B \e[m" $j

echo -n " "

done

printf " %3d\n" $((j1+5))

#set -x

# for (( x=0; x<=5 ; x++ )); do

# # BLUE loop for #web-safe color, BLUE, GREEN

[[ $x -eq 0 ]] && echo -n " "

# j=$(( j1+x ))

# printf "%3d:%.2X%.2X%.2X " $j $RED[$j] $GREEN[$j] $BLUE[$j]

# echo -n " "

# done

# echo

done

done

#gray scale

#echo

echo -n " ---------"

echo " #gray background:(16 59 102 145 188 231)------------"

echo -n " "

for j in $gray_colors ; do

printf "\e[1;38;5;15;48;5;%dm W \e[m" $j

printf "\e[1;38;5;0;48;5;%dm B \e[m" $j

echo -n " "

done

echo

echo -n " "

for j in $gray_colors ; do

printf "\e[1;38;5;51;48;5;%dm Cyan \e[m" $j

echo -n " "

done

echo

echo -n " "

for j in $gray_colors ; do

printf "\e[1;38;5;201;48;5;%dm Magent \e[m" $j

echo -n " "

done

echo

echo -n " "

for j in $gray_colors ; do

printf "\e[1;38;5;226;48;5;%dm Yellow \e[m" $j

echo -n " "

done

echo

}





number_RGB(){

#set -x

n=16

for (( z=0; z<=5; z++ )) do

red=$(( z*51 ))

# echo "red=$red"



for (( y=0; y<=5 ; y++ )); do

green=$(( y*51 ))

for (( x=0; x<=5 ; x++ )); do

blue=$(( x*51 ))

#printf "%3d=(%3d,%3d,%3d) " $n $red $green $blue

RED[$n]=$red

GREEN[$n]=$green

BLUE[$n]=$blue

#printf "%3d=(%X%X%X) " $n $RED[$n] $GREEN[$n] $BLUE[$n]

n=$(( n+1 ))

done

# echo

done

done

}



########################### main ##############################

RED=()

GREEN=()

BLUE=()

#number_RGB



gray_colors=(16 59 102 145 188 231)



show_216c



(2.2 wscInfoのリスト)


#!/bin/zsh



# USAGE: % wscInfo↩

# enter WebSafty-color #(16~231) ? 16 59 102 145 188 231↩ # gray scale

# enter WebSafty-color #(16~231) ? 21 33 39↩ # blue

# enter WebSafty-color #(16~231) ? ↩ # end



wsc2rgb(){

#set -x

#wsc=16+Red*36+Green*6+Blue

wsc=$(($1))

nnn=$((wsc-16))

blue=$((nnn%6))

nn=$((nnn-blue))

green=$(((nn/6)%6))

red=$(((nnn/36)%6))


wscCheck=$((red*36+green*6+blue+16))

blueV=$((blue*51))

greenV=$((green*51))

redV=$((red*51))

}



#====================================================



while true; do

echo -n "enter WebSafty-color #(16~231) ? "

read nmbers

#set -x

[[ $#nmbers -eq 0 ]] && exit

# echo "$nmbers"

numbers=( $(echo $nmbers) )

j=$((0))

# 1 33 0 2 5 0 102 255

echo " # wsc r g b red green blue"

for nm in $numbers; do

[[ $nm -lt 0 || $nm -gt 231 ]] && continue

wsc2rgb $nm

#echo "$nm $red $green $blue $redV $greenV $blueV"

printf " %2d %3d %d %d %d %3d %3d %3d"\

$j $nm $red $green $blue $redV $greenV $blueV

j=$((j+1))

printf " \e[1;38;5;15;48;5;%dm %.3d \e[m" $nm $nm

printf "\e[1;38;5;0;48;5;%dm %.3d \e[m\n" $nm $nm



done

done



(2.3 wsc4TerminalColorsのリスト)


#!/bin/zsh



wsc2rgb(){

#set -x

#wsc=16+Red*36+Green*6+Blue

wsc=$(($1))

nnn=$((wsc-16))

blue=$((nnn%6))

nn=$((nnn-blue))

green=$(((nn/6)%6))

red=$(((nnn/36)%6))


wscCheck=$((red*36+green*6+blue+16))

blueV=$((blue*3))

greenV=$((green*3))

redV=$((red*3))

}



color_Sets(){

# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

cNum=( 16 160 34 214 21 127 45 145 188 196 46 226 39 201 51 231 -1)

shortName=( K R G Y B M C S s r g y b m c w n )

fullName=( Kuro Red Green Yellow Blue Magenta Cyan Silver )

fullName=($fullName silver red green yellow blue magenta cyan white normal)



for (( j=0; j<=16; j++ )) do

k=$((j+1))

wsc2rgb $cNum[$k]

R[$k]=$red

G[$k]=$green

B[$k]=$blue

R3[$k]=$redV

G3[$k]=$greenV

B3[$k]=$blueV

done

}





#========================== main ==========================

#set -x



color_Sets

echo -n "-- #Color --- Name 6base Hex "

echo "Combination of Background and Foreground Colors"

echo -n "#terminal #wsc abb.:full rgb rgb "

echo "Abbreviation of Background|Letter"

echo -n " -- --- --------- --- --- -----------------------------"

echo '------------------------------------'

for (( j=0; j<=16; j++ )) do

k=$((j+1))

if [[ $j -le 15 ]] then

printf " %2d %3d %s:%-8s %1d%1d%1d %1x%1x%1x "\

$j $cNum[$k] $shortName[$k] $fullName[$k] $R[$k] $G[$k] $B[$k]\

$R3[$k] $G3[$k] $B3[$k]

else

printf " %2d ... %s:%-8s ... ... "\

$j $shortName[$k] $fullName[$k]

fi

for (( l=0; l<=15; l++ )) do

m=$((l+1))

if [[ $j -le 15 ]] then

printf "\e[1;38;5;%d;48;5;%dm %s|%s\e[m"\

$l $j $shortName[$k] $shortName[$m]

else

printf "\e[38;5;%dm %s|%s\e[m"\

$l $shortName[$k] $shortName[$m]

fi

[[ $l -eq 15 ]] && printf "\e[48;5;%dm \e[m" $j

done

echo

done

echo -n " -- --- --------- --- --- -----------------------"

echo '------------------------------------------'


以上

2016/04/26 11:58 mNeji への返信

少し時間が経ってしまいましたが、まとめを報告します。


  • •RTFへの出力は止めます。
  • htmlへの出力ウェブ安全色をりようして製作します。


今更なのですが、Wiki記法も含めるようにトライしてみます。ahaのようにswiftで書こうかと思っています。


コメントありがとうございました。

色つきテキストを、コマンド・ラインから.rtfに保存する?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。