Home | First | Prev | Next | Last |
<link rel="stylesheet" type="text/css" href="./css/font-awesome.min.css"> \@font-face { font-family: 'icon_font'; src: url('./fonts/fontawesome-webfont.woff'); }という定義を置きました。
<i class='fa fa-address-book></i>などのように class の中にアイコン名やオプションを書き込みます。 アイコン名の一覧は本家のサイトの他、http://qiita.com/noriaki/items/f11cd960988dc2560cca などに、いくつかのチート・シート(早見表)があります。
input[type=checkbox] { display: none; }
.checkbox { display: inline-block; position: relative; padding-left: 22px; vertical-align: middle; cursor: pointer; }22px という値は、チェックボックスのアイコン 16px と、チックボックスとラベルとの間隔 6px を加えたものです。チェックボックスの前にスペースを置きたいときはその値も加えます。行間を空けたい場合は margin で定義すればいいでしょう。
.checkbox:after { display: block; position: absolute; left: 0px; top: 4px; content: url('./images/check-box-empty.png'); } .checkbox:before { display: block; position: absolute; left: 0px; top: 4px; content: url('./images/check-sign-in-a-rounded-black-square.png'); opacity: 0; }擬似要素 :after と :before は文字列の後ろや前に content で定義された文字列や画像を挿入するものですが、ここでは、:after も :before も同じ位置にし、ブランク画像と、チエック済みの画像とを重ねて表示するようにしました。チェック済み画像は opacity: 0 でチェックするまでは隠すようにしました。
input[type=checkbox]:checked + .checkbox:before { opacity: 1; }
<input id='option1' type='checkbox' name='marked_items' value='option 1' class='checkbox' /> <label for='opeiton1' class='checkbox'>Label Name 1</label>かならず label を指定し、input と label の両方に .checkbox クラスを指定しないと、CSS は正しく働きません。
input[type=checkbox]:checked + .checkbox:after { opacity: 0; }チェック済み画像がブランク画像に重なる場合、この定義はいらないのですが、かならずしもそうとはかぎりませんので、この定義はあったほうが無難かと思います。
<div style='display:inline-block; width:800px;'> <pre style=' -webkit-writing-mode:vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; font-size:14pt; line-height:180%; letter-spacing:1px; height:460px; padding:3em 1em;'> <b>問 い</b> 茨 木 の り 子 ゆっくり考えてみなければ いったい何をしているのだろう わたくしは ゆっくり考えてみなければ 働かざるもの食うべからず いぶかしいわ鳥みれば ゆっくり考えてみなければ いつのまにかすりかえられる 責任と命の燦 ゆっくり考えてみなければ みんなもひとしなみ 何かに化かされているようで いちどゆっくり考えてみなければ 思い思いし半世紀は過ぎ去り行き 青春の問いは昔日のまま 更に研ぎだされて 青く光る </pre> </div>
問 い 茨 木 の り 子 ゆっくり考えてみなければ いったい何をしているのだろう わたくしは ゆっくり考えてみなければ 働かざるもの食うべからず いぶかしいわ鳥みれば ゆっくり考えてみなければ いつのまにかすりかえられる 責任と命の燦 ゆっくり考えてみなければ みんなもひとしなみ 何かに化かされているようで いちどゆっくり考えてみなければ 思い思いし半世紀は過ぎ去り行き 青春の問いは昔日のまま 更に研ぎだされて 青く光る
container { display:flex; justify-content:center; }flex box は幅や高さは、コンテンツに応じて自動的に調整してくれるので、上記のような簡単な記述だけで、コンテンツの中央寄せを実現してくれます。
.page_left { display:inline-block; margin:1px; width:580px; padding:1em; background-color:#F8ECC2; border-radius: 0 16px 0 0;} .page_right { display:inline-block; margin:1px; width:580px; padding:1em; background-color:#F8ECC2; border-radius: 16px 0 0 0;} .vrl { -webkit-writing-mode:vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; margin:3em 1em; font-size:14pt; line-height:160%; letter-spacing:1px; height:420px; } .page_number_left { padding:1em; text-align:left; } .page_number_left { padding:1em; text-align:right; }
if (!(open RECORD, "$datafile")){ &print_message("Cannot open data file.", "$goback"); } $/ = "====================\n"; @data = <RECORD> close RECORD; $max_page = $#data;
$(function(){ $('html').keyup(function(e){ switch(e.which){ case 8: // Key[BS] $('#backward').trigger('click'); break; case 32: // Key[SP] $('#forward').trigger('click'); break; case 39: // Key[→] $('#backward').trigger('click'); break; case 37: // Key[←] $('#forward').trigger('click'); break; case 38: // Key[↑] $('#backward').trigger('click'); break; case 40: // Key[↓] $('#forward').trigger('click'); break; case 188: // Key[<] $('#forward').trigger('click'); break; case 190: // Key[>] $('#backward').trigger('click'); break; } }); });
$ sudo apt-get install cpanminusで cpanminus をインストールし、
$ sudo cpanm Text::Markdownとして、モジュールを組み込みました。
use Text::Markdown 'markdown';として
$html = markdown($text);で、マークダウンで書かれたものを、HTML 形式にして取り出します。
$ sudo add-apt-repository ppa:webupd8team/nemo $ sudo apt-get update $ sudo apt-get install nemo nemo-fileroller
$ sudo apt-get install nemo-dropboxnemo で dropbox フォルダーを開くと、ファイルに「同期済み」のマークが示されました。このフォルダーにファイルをコピーすると、「同期中」のマークがつきますが、nemo を「更新」しないと、いつまでたっても「同期済み」にはなりませんでした。
USAGE: brsaneconfig4 [-OPTION] OPTION: -a name=FRIENDLY-NAME model=MODEL-NAME ip=xx.xx.xx.xx -a name=FRIENDLY-NAME model=MODEL-NAME nodename=BRN_xxxxx : Add network scanner -r FRIENDLY-NAME [FRIENDLY-NAME ...] : Remove network scanner -q : Query supported models and available network scanners -d : Diagnosis -p : Ping (for network scanners) -s:[LABEL] : Save current configuration -l:[LABEL] : Load saved configurationというヘルプが出ましたので、それに従って、次を実行しました。
$ sudo brsaneconfig4 -a name=MFC model=MFC-J6920DW ip=192.168.12.12ip はプリンター本体のディスプレー画面での Setting → Network → WLAN → TCP/IP に表示されたものを入れました。ip のかわりに nodename を入れてもいいのですが、私の場合、 nodename を指定したため、プリンターが使えなくなってしまいました。それで、プリンターの設定をやり直してから、次のコマンドで、スキャナーの接続を取り消しました。
$ sudo brsaneconfig4 -r MFC改めて ip 指定でスキャナと接続しました。
/etc/opt/brother/scanner/brscan4/brsanenetdevice4.cfgに格納されていますので、ここで接続指定を確認しました。
$ sudo apt-get install apt-xapian-index $ sudo update-apt-xapian-index -vf上記のふたつのコマンドだけで、検索ボックスが表示されました。とても便利になりました。
$ sudo dpkg-reconfigure ttf-mscorefonts-installerを実行し、手順に従ってフォントファイルの格納先を指定すれば、見事にフォントをインストールしてくれました。Linux は多数のボランティアで作られている OS で、企業によるサポートはありませんが、こうしてコミュニティでのサポートがあるので、問題が解決できます。ありがたいことです。
$ pdftk cover.pdf text.pdf cat output all.pdfこれで cover.pdf と text.pdf を結合して all.pdf を作ることができました。おそらく、もとの PDF ファイルになんらかの不整合があったと思い、次のコマンドで、pdftk を通して、ファイルの再書き込みを試してみました。
$ pdftk original.pdf output fixed.pdfそうすれば、その PDF ファイルは pdfshuffler でも使えるようになりました。
$ pdftk calendar2017.pdf burstとすると pg_0001.pdf から pg_0012.pdf という月別の PDF ファイルができました。
$ pdftk all.pdf cat 1-4 7-end output part.pdfpdftk と pdfshuffler を併用すれば、いろんなことができます。
$ libreoffice --headless --convert-to pdf SAMPLE.odtSAMPLE.pdf が同じディレクトリーに作成されます。別のディレクトリーに作成したければ、次のようにしてディレクトリーを指定できます。ワイルドカードで一括変換するとき、出力ディレクトリーを指定できるのは便利です。
$ libreoffice --headless --convert-to pdf SAMPLE.odt --outdir ./PDF_filesただし、コマンドラインからの変換の場合、同じ名前の PDF ファイルがあっても上書きされてしまいます。また、PDF への変換オプションはコマンドラインではできないようで、LibreOffice で設定したものがそのまま反映されます。また、この機能を使うには LibreOffice で JAVA が使えるようになっていなければなりません。これは LibreOffice の「ツール」→「オプション」→「詳細」にある「Java オプション」で JRE が指定されている必要があります。
# JIS コードに変換 use Encode qw/ from_to /; from_to($mail_subject, 'utf8', 'iso-2022-jp'); from_to($mail_body, 'utf8', 'iso-2022-jp'); # さらに MIME encode use MIME::Base64; $mail_subject = MIME::Base64::encode($mail_subject); chomp $mail_subject; $mail_subject = "=?ISO-2022-JP?B?$mail_subject?=";
# SMTP セットアップ use Net::SMTP; use Net::SMTP::SSL; my $smtp_server = 'smtp.XXXX.com'; my $smtp_port = '465'; my $smtp_acc = 'XXXX@XXXX.XXX'; my $smtp_pwd = 'XXXXXXXXXXX'; my $smtp = Net::SMTP::SSL->new($smtp_server,Port => $smtp_port, Debug => 1);
# 接続と認証 if($smtp->auth($smtp_acc,$smtp_pwd)){ $smtp->mail($mail_from); $smtp->to($mail_to); # データ送信 $smtp->data(); # メールヘッダ $smtp->datasend("From: $mail_from\n"); $smtp->datasend("To: $mail_to\n"); $smtp->datasend("Subject: $mail_subject\n"); $smtp->datasend("Content-Transfer-Encoding: 7bit\n"); $smtp->datasend("Content-Type: text/plain; charset=ISO-2022-JP\n"); $smtp->datasend("X-Mailer: Penguin Mailer\n"); $smtp->datasend("\n"); # 本文 $smtp->datasend("$mail_body\n"); # 終了 $smtp->dataend(); $smtp->quit; } else{ print "送信サーバーの認証を得られませんでした\n"; }これでターミナルやウェブアプリからメールを送信できるようになりました。送信したメールの控えは、sendmail を使って送信したのとは違って、自分のメールアカウントに残ります。私は、これを同じメールを多数の宛先に個別に送るプログラムで利用してみましたが、50件のメールを送ると、50件の送信控が貯まるので、不要なものを削除する手間が増えました。今のところ件名に識別用の文字列を入れて、「送信済み」フォルダーからの削除を簡単にできるようにしています。
# 添付ファイルの指定と名前の取得 $attach_file =~ /[^\/]+$/; $attach_name = $&; # Boundary の指定 $boundary = "PenguinMailBoundaryPenguinMailBoundary"; # ファイルを読み込んで Base64 エンコード if (! open(FILE, "< $attach_file")) { print "添付ファイルを開けませんでした\n"; } $filesize = -s "$attach_file"; # ファイルサイズ $readsize = read(FILE, $filebody, $filesize); # $filesize 分を読み込んで $filebody に格納 close(FILE); $base64filebody = MIME::Base64::encode($filebody);
# ヘッダ(添付) $smtp->datasend("Content-Type: Multipart/Mixed; boundary=\"$boundary\"\n"); $smtp->datasend("X-Mailer: Penguin Mailer\n"); $smtp->datasend("\n"); # 本文 # $boundary の最初に '--' が必要 $smtp->datasend("--$boundary\n"); $smtp->datasend("Content-Transfer-Encoding: 7bit\n"); $smtp->datasend("Content-Type: text/plain; charset=ISO-2022-JP\n"); $smtp->datasend("\n"); $smtp->datasend("$mail_body\n"); # 添付 $smtp->datasend("--$boundary\n"); $smtp->datasend("Content-Type: application/octet-stream; name=\"$attach_name\"\n"); $smtp->datasend("Content-Transfer-Encoding: base64\n"); $smtp->datasend("Content-Disposition: attachment; filename=\"$attach_name\"\n"); $smtp->datasend("\n"); # エンコード・データの送信 @lines = split /\n/, $base64filebody; foreach $line (@lines) { $smtp->datasend("$line\n"); } # メールの終りには $boundary の最後に '--' が必要 $smtp->datasend("--$boundary--\n"); # $smtp->dataend(); $smtp->quit;$base64filebody の送信のとき、わたしは最初
$smtp->datasend("$base64filebody\n");としたのですが、そうしたら、"Unexpected EOF" というエラーが出て、送信に失敗しました。それで、$base64filebody を一行ごとに取り出して $smtp->datasend(); に渡すようにしました。これは Net::SMTP を使う上で注意が必要な点だと思います。
~/.config/Thunar/accels.scmファイルを開き、ショートカットを加えたい機能を検索し、キーを書き込み、その行の最初にあるアンコメントマーク(“;”)を外すだけです。私は、シンボリック・リンクの作成をショートカットでやりたかったので、48行目を
(gtk_accel_path "としました。編集したファイルを保存し、再ログインしたら、ショートカット・キーが使えるようになっていました。/ThunarStandardView/make-link" "<Alt>l")
$ sudo cpan -i Imagerで簡単にできましたが、このままでは gif、jpg、png などの、web でよく使う画像フォーマットを使えませんでした。それで、導入した Imager モジュールをいったん削除してから、次の画像ライブラリーを導入しました。
$ sudo apt-get install libgif-dev libjpeg-dev libpng-devそして、あらためて Imager モジュールを導入しました。
use Imager; my $img = Imager->new;次に画像ファイルを読み込み、サイズを得、それを半分に縮小しました。
$img->read(file => $file) or warn $img->errstr; $width = $img->getwidth(); $height = $img->getheight(); $new_width = int($width / 2); $new_height = int($height / 2);それから、新しいサイズを指定し、新しいファイルに書き込みました。
$img = $img->scale(xpixels=>$new_width, ypixels=>$new_height); $img->write(file=>$new_image) or die $img->errstr;
$ sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next $ sudo apt-get update && sudo apt-get install ffmpeg $ sudo add-apt-repository ppa:obsproject/obs-studio $ sudo apt-get update && sudo apt-get install obs-studio私は ffmpeg をすでに導入済みでしたので、上記の3行目と4行目を実行しました。
$ sudo swapon --show結果は次のとおりでした。
NAME TYPE SIZE USED PRIO /swapfile file 947.2M 2.5M -1
/swapfile none swap sw 0 0
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 $ sudo chmod 600 /swapfile $ sudo mkswap /swapfile $ swapon /swapfile
/swapfile none swap swap defaults 0 0再起動して
$ cat /proc/swapsで確かめると、
Filename Type Size Used Priority /swapfile file 1048572 0 -1 /dev/sda3 partition 8327164 0 -2となっていました。あとは、
$ sudo swapoff /dev/sda3でスワップパーティションを無効にし、パーティションを削除し、fstab を書き換えました。
Home | First | Prev | Next | Last |