Kategoriler
Anlatım Genel Linux

Embed and Subset Fonts

Assalamu alaikum (Peace be upon you) dear visitor,

I have faced with font embed and subset problem every time I submit my research paper to IEEE or ACM conference or journal. In this article, I am going to explain how I embed and subset fonts in Ubuntu 14.04.1 LTS 64 bit. Here is my solution:

  1. Open terminal.
  2. Update repository.
  3. Install texlive.
  4. Install texlive-publishers.
  5. Install ghostscript.
  6. Create a shell script (sh) file in the folder that has your (IEEE, ACM) tex file.
  7. Copy the code below and paste it to the shell script file.
  8. Grant the execution permission and run it!

Congratulations! Now you have a pdf with embeded subset fonts.

Assalamu alaikum (Peace be upon you) 🙂

#!/bin/bash

## do not write tex extension
## only write tex file name
TEX_FILENAME=””
## do not write bib extension
## only write bib file name
BIB_FILENAME=””

if [ $# == 1 ]; then
TEX_FILENAME=$1
BIB_FILENAME=$1
elif [ $# == 2 ]; then
TEX_FILENAME=$1
BIB_FILENAME=$2
else
echo “This script requires two parameters to generate pdf with embeded subset fonts. These are tex and bib filenames.”
echo “You must provide at least one argument. In this case, script assumes that tex and bib file has exactly the same name.”
echo “Otherwise, first one must be tex file name without extension and the second one must be bib file name without extension.”
echo “Example: shellScript.sh myTexFile myBibFile”
echo “Wrong: shellScript.sh myBibFile.bib myTexFile.tex”
echo “Wrong: shellScript.sh myBibFile myTexFile.tex”
echo “Wrong: shellScript.sh myBibFile.bib myTexFile”
echo “Wrong: shellScript.sh myTexFile.tex myBibFile”
echo “Wrong: shellScript.sh myTexFile myBibFile.bib”
echo “Wrong: shellScript.sh myTexFile.tex myBibFile.bib”

exit 1
fi

## globals
LATEX_EXTENSION=”.tex”
BIBTEX_EXTENSION=”.bib”
DVI_EXTENSION=”.dvi”
PS_EXTENSION=”.ps”
PDF_EXTENSION=”.pdf”
AUX_EXTENSION=”.aux”
BBL_EXTENSION=”.bbl”
BLG_EXTENSION=”.blg”
LOG_EXTENSION=”.log”
SYNCTEX_EXTENSION=”.synctex”
GZ_EXTENSION=”.gz”

## create DVI file and update references
latex $TEX_FILENAME
bibtex $BIB_FILENAME
latex $TEX_FILENAME
latex $TEX_FILENAME

## convert DVI to PS
#dvips -Ppdf -G0 -ta4
dvips -Ppdf -G0 -ta4 $TEX_FILENAME

## convert PS to PDF
## in the mean time embed font subsets
ps2pdf -dCompatibilityLevel#1.4 \
-dPDFSETTINGS#/prepress \
-dAutoRotatePages#/None \
-dCompressPages#true \
-dASCII85EncodePages#false \
-dUseFlateCompression#true \
-dEmbedAllFonts#true \
-dSubsetFonts#true \
-dMaxSubsetPct#100 \
-dConvertCMYKImagesToRGB#false \
-dAutoFilterColorImages#true \
-dColorImageFilter#/DCTEncode \
-dEncodeColorImages#true \
-dDownsampleColorImages#true \
-dColorImageDepth#-1 \
-dColorImageResolution#300 \
-dColorImageDownsampleThreshold#1 \
-dColorImageDownsampleType#/Bicubic \
-dAutoFilterGrayImages#true \
-dGrayImageFilter#/DCTEncode \
-dEncodeGrayImages#true \
-dDownsampleGrayImages#true \
-dGrayImageDownsampleThreshold#1 \
-dGrayImageDownsampleType#/Bicubic \
-dGrayImageDepth#-1 \
-dGrayImageResolution#300 \
-dMonoImageFilter#/CCITTFaxEncode \
-dEncodeMonoImages#true \
-dDownsampleMonoImages#true \
-dMonoImageDownsampleThreshold#1 \
-dMonoImageDownsampleType#/Bicubic \
-dMonoImageDepth#-1 \
-dMonoImageResolution#600 \
“$TEX_FILENAME$PS_EXTENSION” “$TEX_FILENAME$PDF_EXTENSION”

## remove unnecessary files automatically
rm $TEX_FILENAME$AUX_EXTENSION
rm $TEX_FILENAME$DVI_EXTENSION
rm $TEX_FILENAME$PS_EXTENSION
rm $TEX_FILENAME$BBL_EXTENSION
rm $TEX_FILENAME$BLG_EXTENSION
rm $TEX_FILENAME$LOG_EXTENSION

Kategoriler
Anlatım Linux

Sublime Text 2 Yükleme (Linux Mint)

Esselamu aleykum ve rahmetullah ve berekatuhu,

Siz de benim gibi her seferinde bir kod dökümanını açmak için uzun uzun sublime uygulamasını koyduğunuz dizinden seçmekten bıktıysanız aşağıda anlattıklarımı uygulayabilirsiniz. Bir kabuk kodu (shell script) yazdım. Çok basit bir kod. Siz alıp özelleştirebilirsiniz. Başka kontroller ekleye de bilirsiniz. Ben ihtiyaç duymadım. Benim kullandığım Linux (linuks diye okunur bu arada sakın linaks falan demeyin – Linus Torvalds böyle okuyor ben bilmem) dağıtımı Mint Xfce. Bu yüzden çözümüm de bu dağıtıma göre oldu. Ama sanıyorum Ubuntu için de oluyor. Daha doğrusu Ubuntu temelli dağıtımlar için diyeyim. Gelelim çözüme:

[well_box]

#!/bin/bash
#indirilen belgeleri klasöre çıkartma
tar xvjf Sublime*Text*2*.tar.bz2
#uygulama klasörünü opt dizinine taşıma
sudo mv -f Sublime*Text*2 /opt/
#komut satırından açabilmek için sembolik bağlantı oluşturma
sudo ln -s -f /opt/Sublime*Text*2/sublime_text /usr/bin/sublime
#uygulama için varsayılan açma dosyası oluşturma
#(launcher demek istiyorum ama İngilizce’ye çeviremedim)
#(Tırnak içindeki alanı keyfinize göre düzenleyebilirsiniz.)
echo “[Desktop Entry]
Name=Sublime Text 2
GenericName=Text Editor
Comment=Edit text/code files
Keywords=Plaintext;Write;
Exec=sublime
Terminal=false
Type=Application
StartupNotify=true
MimeType=text/plain;
Icon=/opt/Sublime Text 2/Icon/256×256/sublime_text.png
Categories=TextEditor;IDE;Development
Actions=Window;Document;
X-Ubuntu-Gettext-Domain=sublime” > sublime.desktop
#açma dosyasını olması gereken dizine taşıma
sudo mv -f sublime.desktop /usr/share/applications/

[/well_box]

Bu kodları bir kabuk kodu dökümanına (Örn. ıdıVeBıdı.sh ) yapıştırıp kullanabilirsiniz.

UYARI: Kopyala-yapıştır işleminden sonra 10. ve 23. satırlardaki tırnak işaretlerini tekrar silip tekrar yazmayı unutmayın. Yoksa hata alırsınız.

Allah ‘a emanet olun. Selam, dua ve muhabbetle Efendim…

Kategoriler
Anlatım Linux

Xrandr Komutu ile Ekran Çözünürlüğü Ayarlama

Esselamu Aleyküm ve Rahmetullah,

Geçtiğimiz günlerde bilgisayarımda bir sorun oldu. Bilgisayarımda Nvidia ekran kartı var ve Optimus teknolojisine sahip. Kısaca bilgi verecek olursam, bu teknoloji sayesinde istediğim programları harici ekran kartında çalıştırabiliyorum. Avantajı ne? Görsel olarak bilgisayarı yoracak işlemleri harici ekran kartı üzerinde yaparak performansı artırıyorum. Bunun dezavantajı pili çok kullanıyor olması. Eğer basit görsel işlemler yapıyorsam, örneğin yazı yazmak, metin okumak gibi, karmaşık görüntü işlemleri yapmadığım için ekran kartına ihtiyacım olmuyor ve dahili ekran kartı üzerinden işimi halledebiliyorum. Böylece daha az pil harcamış oluyorum. Hem de performans kaybım olmuyor.

Konumuza geri dönelim. Nvidia Linux dağıtımları için bu teknolojinin yazılım desteğini sağlamıyor. Geçtiğimiz yıllarda bir proje çıktı. Adı Bumblebee. Transformers ‘taki Bumblebee bu. Teknolojinin adı Optimus olunca, bu desteği linux için veren yazılımın adını Bumblebee koymuşlar. Başta sadece bir kişi uğraşıyordu. Şimdilerde ilgilenenlerin sayısı epey artmış. Hatta Ironhide diye bir kol daha çıktı. Bu kol ile projeyi ilk başlatan kişi ilgileniyor. Diğer grup Bumblebee’yi geliştirmeye devam ediyor.

Bende bu özelliği bilgisayarımda kullanabilmek için bu açık kaynak yazılımı yükledim. Lakin bir sorun oldu ve birden ekranımın çözünürlüğü 640×480’e düştü. Ayarlardan düzeltmeye çalıştım olmadı çünkü sadece 640×480 çözünürlüğe izin veriyordu. Yazılımı sildim, tekrar yükledim. Başka denemeler yaptım ama bir türlü düzeltemedim. En sonunda ekran çözünürlüğünü tekrar ayarlama kodunu araştırmaya başladım.

Yaptığım araştırmalar sonucunda bu işi Ubuntu’nun versiyonlarında xrandr komutunun yaptığını öğrendim. Aşağıdaki kodu kendinize uyarlayarak sizde seçeneklerin dışındaki ekran çözünürlüklerini elde edebilirsiniz. Burada dikkat etmeniz gereken bir şey var. Çözünürlük sadece o oturum için geçerli. Eğer bilgisayarı kapatırsanız, yeniden başlatırsanız veya oturumu kapatırsanız bu ayar gider. Eğer her seferinde bilgisayarın kodu otomatik olarak çalıştırmasını istiyorsanız o zaman kodu .sh uzantılı bir dosyaya yazarak başlangıçta çalıştırılacak şekilde ayarlama yapmanız lazım.

Son olarak bir şey daha var. Kod otomatik değil. Acelem olduğu için modüler olarak yazamadım. Şimdilik buradan bakarak kendi bilgisayarınıza uygulayın. İlk fırsatta her bilgisayar için uyumlu bir hale getireceğim inşaallah.

#!/bin/sh
# ekran çözünürlüğü hakkında bilgi almak için
# cvt en boy yazarak gerekli bilgileri al
echo "getting resolution information..."
cvt 1366 768
# yeni ekran çözünürlük modu oluşturmak için
# yukarıdaki komut sonucunda dönen yazıdan
# Modeline kısmından sonraki kısmı kopyala
# xrandr --newmode yazıp konsola kopyaladığın
# kısmı yapıştır
echo "creating new mode..."
xrandr --newmode "1366x768" 85.25 1366 1440 1576 1784 768 771 781 798 -hsync +vsync
# yeni ekran çözünürlük modunu sisteme eklemek için
# xrandr --addmode yazıp monitör ismini ekrana yaz
# ben laptopda çalıştığım için LVDS1 yazdım
# monitör adından sonra Modeline kısmından sonra
# yazan tırnak içindeki mod adını kopyala
# monitör adından sonra boşluk bırakarak yapıştır
echo "adding it to the system..."
xrandr --addmode LVDS1 "1366x768"
# yeni oluşturduğun ekran çözünürlüğüne geçmek için
# xrandr --output LVDS1 --mode yazıp mod adını da
# ekleyerek ekranı dinamik olarak tekrar ayarla
echo "switching to new mode..."
xrandr --output LVDS1 --mode "1366x768"
echo "WELL DONE!"
notify-send -t 1000 "Resolution mode was changed!"

İnşaallah yardımcı olmuştur. Başka bir anlatımda görüşmek dileğiyle,

Allah ‘a emanet olun (:

Kategoriler
Anlatım Linux

Xubuntu Wireless Kart Sorunu

Allah ‘ın selamı, rahmeti, bereketi, ihsanı ve ikramı üzerinize olsun (:

Uzun zamandır yaşadığım basit ama sinir bozucu bir sorunun çözümünden bahsetmek istedim.

Ubuntu, Kubuntu, Xubuntu vb dağıtımları kullanan arkadaşlar bilirler ki, kablosuz ağınızı elle (bir tuş üzerinden) kapatırsanız, tekrar açtığınızda kablosuz ağınız çalışmıyor. Hangi durumlarda olduğunu tam olarak bilmiyorum. Sanıyorum bilgisayarı kablosuz ağı donanımsal olarak kapattığınız zaman oluyor. Yani kapatmadan önce tuşla kapatıyorsunuz. Bilgisayarı tekrar açtığınızda tekrar açsanız bile yazılımsal olarak kilitli kalıyor.

Bu durumdan kurtulmak çok kolay aslında. Rfkill komutunu kullanarak açabiliyorsunuz fakat yine de sinir bozucu. Her seferinde konsolu kullanarak bu işi yapmak yerine bir kod yazdım. Kod aslında çok kısa olabilirdi fakat ben süslü bir şey olsun diye biraz uzattım.

Metin editörünüzü açıp kodu içine kopyalayın ve kaydedin. Daha sonra sağ tıklayıp izinler kısmında çalıştırma izni verin. Son olarak da sağ tıklayıp çalıştır deyin. Masaüstü bildirimleri sayesinde sonucu görebilirsiniz. Masaüstü bildirim kütüphanesi yüklü değilse ekranda herhangi bir şey çıkmayacaktır. Fakat terminalden çalıştırırsanız bildirimleri görebilirsiniz.

#!/bin/sh
# _ubuntu wireless card on-off script

 

hard=$(rfkill list wlan | grep -c “Hard blocked: yes”)
soft=$(rfkill list wlan | grep -c “Soft blocked: yes”)

 

if [ $hard -eq 1 ]
then
notify-send -t 3000 “Wlan is blocked hard! Switch card on!”
echo “Wlan is blocked hard! Switch card on!”
exit

 

elif [ $soft -eq 1 ]
then
notify-send -t 3000 “Wlan is blocked soft! It will be opened soon…”
echo “Wlan is blocked soft! It will be opened soon…”
rfkill unblock wlan
notify-send -t 3000 “Wlan is unblocked!”
echo “Wlan is unblocked!”
exit 0

 

else
notify-send -t 3000 “Wlan is unblocked already!”
echo “Wlan is unblocked already!”
exit 0
fi

Bir başka çözümde daha görüşmek dileğiyle, Allah ‘a emanet olunuz efendim (:

Kategoriler
Anlatım Linux

Nvidia Optimus Teknolojisi ve Linux Dağıtımları

Merhaba sevgili okurlar,

Bildiğiniz gibi uzun süre önce Nvidia’nın ortaya çıkardığı Optimus teknolojisi Linux dağıtımları ile uyumsuz. Bu gün sizlere bu uyumsuzluğun sebebini açıklayacağım.

Öncelikle size Nvidia Optimus teknolojisinden bahsetmem gerekiyor. Bildiğiniz gibi her bilgisayarın bir ekran kartı ihtiyacı vardı. Bu ihtiyaç dahili yada harici ekran kartı kullanılarak giderilir. Fakat bir sorunumuz var. Eğer dahili ekran kartımız varsa o çok sevdiğimiz yada büyük hevesle çıkmasını beklediğimiz ayrıca son çıkan ekran kartlarını bile zorlayan oyunları oynayamayız. Fakat pil ömrümüz daha uzundur çünkü çok alengirli şeyler yapamayız ekran kartımız dahilidir ve bilgisayarı kasar. Hatta çoğu zaman çalıştırmaz.. Şimdi diğer seçeneğe gelelim. Çok harika bir ekran kartımız var. Hangi oyunu açarsan aç, oyun grafik ayarlarını ne yaparsan yap ekran kartımız bana mısın demiyor. Fakat en baba oyun oynarken öve öve bitiremediğimiz ekran kartınımız basit bir resimi açarken, bir pdf dosyasını okurken de devrede oluyor. Yani basit bir işlem için bile koca bir ekran kartını çalıştırıyoruz. Gereksiz yere fazla iş yapıyoruz. Doğal olarakta pili daha çabuk yiyoruz.
Nvidia bu tip durumlara çözüm olması için Optimus teknolojisini geliştirdi. Bu teknolojiyle birlikte bilgisayarımızda iki ekran kartını da bulundurabiliyoruz. Aslında bulundurmaktan ziyade kullanabiliyoruz. Basit işlerimizi yaparken dahili ekran kartımız devrede oluyor. Bir oyun açtığımızda ise harici ekran kartımız devreye giriyor. Önceden bunu yapamazdık. Fakat artık böyle bir teknoloji var. Aynı anda iki ekran kartı kullandığımız için bu sistemi “hibrit” olarak adlandırmışlar.
Bu sistem Microsoft’un işletim sistemlerinde gayet güzel işliyor fakat gel gelelim linuxlarda sorun var. Nvidia linux dağıtımlarında Optimus teknolojisinin kullanılması için bir sürücü yazmıyor. Şuan var olan hiçbir sürücü Optimus teknolojisini desteklemiyor. İnternette yaptığım araştırmalara görede yakın bir zamana kadar da böyle bir sürücü yazılmayacak. Aklıma gelen ilk sebep az linux dağıtımı kullanıcısının olması… Mantıklı mı? Bence değil.. Fakat elimizden gelen bir şey yok. İnşaallah en kısa zamanda Linux dağıtımları için Optimus desteği gelir..
Saat epey ilerlemiş ben yazımı yazarken, artık yatma vakti, herkese iyi geceler (: