×

Thông báo nâng cấp hệ thống

Hiện tại hệ thống đã chuyển đổi sang phiên bản mới hơn

Vui lòng bấm vào đây để chuyển sang phiên bản mới nhất

 Tool-Script Bộ Script Nhỏ Gọn Làm Ebook Với EmEditor

Thảo luận trong 'Ebook truyện dịch' bắt đầu bởi Big Bang, 20/9/13.

  1. Big Bang

    Big Bang Thành viên kích hoạt

    Được thích:
    130
    .
    Nhúng font phải làm bằng HTML, không làm bằng MS Word được.

    Các font nhúng phải đặt ở đầu file CSS hoặc đầu cặp thẻ <style>. Cú pháp:
    Mã:
    @font-face {
    	font-family: <name>;
    	src: url(<link-to-font-file>);
    	font-style: <optional: normal, italic, oblique>;
    	font-weight: <optional: normal, bold, 100 --> 900>;
    	font-stretch: <optional: normal, condensed, ultra-condensed, extra-condensed,
    						semi-condensed, expanded, semi-expanded, extra-expanded, ultra-expanded>;
    }
    
    Trong đó font-familysrc là bắt buộc (mandatory); font-style, font-weightfont-stretch là optional.
    Ví dụ nhúng nguyên bộ font Windows Times New Roman:
    Mã:
    @font-face { font-family: "Times New Roman"; src: url("emb_fonts/times.ttf"); font-style: normal; font-weight: normal; }
    @font-face { font-family: "Times New Roman"; src: url("emb_fonts/timesbd.ttf"); font-style: normal; font-weight: bold; }
    @font-face { font-family: "Times New Roman"; src: url("emb_fonts/timesbi.ttf"); font-style: italic; font-weight: bold; }
    @font-face { font-family: "Times New Roman"; src: url("emb_fonts/timesi.ttf"); font-style: italic; font-weight: normal; }
    
    Kindle for Android có các bộ font mặc định rất đẹp, thí dụ Caecilia, Palatino, Droid Serif là các font serif (font chữ có chân) hoặc Helvetica, Lucida là các font sans serif (font chữ không chân) nên nói chung dùng mấy font đó cũng đủ cho text thường. Với text làm heading (ví dụ tựa chương) bạn có thể dùng font nhúng nếu thích.

    Nếu dùng font nhúng cho text thường thì phải quy định font chữ cho thẻ <body>, ví dụ:
    Mã:
    /* here is your CSS file */
    
    body { font-family: "Times New Roman"; }
    
    Tôi post nguyên file CSS tôi dùng bộ font Tahoma của Windows để các bạn tham khảo:
    Mã:
    /* here is your CSS file */
    @font-face { font-family: "Tahoma"; src: url("emb_fonts/tahoma.ttf"); font-style: normal; font-weight: normal; }
    @font-face { font-family: "Tahoma"; src: url("emb_fonts/tahomabd.ttf"); font-style: normal; font-weight: bold; }
    @font-face { font-family: "Vintage Decorative 3"; src: url("emb_fonts/Vintage Decorative Signs 3.ttf"); }
    
    h1 {text-align:center; color:#99182C;}
    h2 {text-align:center; color:#99182C;}
    h3 {text-align:center; color:#35586C;}
    h4 {text-align:center; color:#35586C;}
    
    h1.cover {text-align:center; color:#99182C;}
    h2.cover {text-align:center; color:#993300;}
    h3.cover {text-align:center; color:#35586C;}
    h4.cover {text-align:center; color:#35586C;}
    
    body { font-family: "Tahoma"; }
    
    a.toc {text-decoration: none !important; }
    p.sectbr { font-family: "Vintage Decorative 3"; text-align:center;}  /* <p class="sectbr">(^(</p> */
    p.chapbr { font-family: "Vintage Decorative 3"; text-align:center;page-break-after:always;}  /* <p class="chapbr">,1=1,</p> */
    p.firstpara {text-indent: 0px; margin-top: 0px; margin-bottom: 0px;}
    div.poem {font-style: italic; text-align: center; }
    span.dropcap {font-size: 3em; font-weight: bold; float: left; margin-top: -0.25em; margin-right: 0.05em; margin-bottom: -0.3em;}
    
    
    Font Tahoma tuy chỉ có 2 file nhưng vẫn có đủ cả 4 dạng normal, bold, italic, bold italic giống như Times New Roman.

    Nói chung nếu thích dùng font nhúng thì có thể làm như sau:
    - Chọn 1 bộ font có đủ các style để dùng cho text thường: normal, bold, italic, bold italic. Không nên chọn font thiếu style. Ví dụ font thiếu style italic thì khi bạn muốn chữ nghiêng cho các khổ thơ sẽ không làm được. Chú ý các font này phải hỗ trợ tiếng Việt, nếu không khi gặp chữ việt có dấu nó sẽ thay bằng font mặc định của Kindle, hai loại font trộn lẫn trông rất xấu.
    - Chọn 1 hay nhiều loại font đẹp để làm Heading. Có rất nhiều font chuyên để làm heading, thường là font chữ đậm (bold)
    - Chọn 1 font đẹp, cách điệu để làm dropcap. Có các font chuyên để làm dropcap, tuy nhiên hay thiếu các chữ việt có dấu. Bạn có thể dùng Fontlab Studio để thêm chữ việt nếu thích.
    - Chọn 1 font loại dingbat hay Decorative để làm các dòng ngắt đoạn hay hết chương (section break, chapter break).

    PS: Chú ý ngôn ngữ để làm ebook phải là Tiếng Anh. Nếu bạn quy định là tiếng Việt thì Kindle sẽ chỉ có font Droid Serif mà không có các lựa chọn khác (Caecilia, Palatino,...). Trong file OPF sẽ phải quy định như sau:
    Mã:
    <dc:Language>en</dc:Language>
    
    Trong tất cả các file HTML sẽ phải quy định ngôn ngữ là tiếng Anh, ví dụ:
    Mã:
    <html lang="en">
    
     
    Chỉnh sửa cuối: 7/10/14
  2. comeback

    comeback Thành viên kích hoạt

    Được thích:
    2,964
    Tớ cũng mò cả tuần và cũng đã làm được rồi.
    Ở trên bạn hướng dẫn rất kỹ nhưng quên mất 1 điều quan trọng @font-face và các tag html5 phải là kf8 mới support.
    Dùng kindlegen tạo ra file .mobi. Từ đây ta lại có 2 sự lựa chọn:
    -Xuất ra file .mobi(bao gồm mobi7 và kf8):Dung lượng file quá lớn gấp 3 bản prc.
    -Xuất ra file .azw3:Phải nói là chạy good.Nhưng lại không phổ biến, ít người dùng.
    Còn như trong prc thì ta chỉ cần thêm font cho tag <p> thôi không ảnh hưởng đến heading,điều kiện là trong máy phải có font đã thêm vào.Trong css sẽ thêm vài sự lựa chọn font,với ai đọc bằng mobi reader trên pc thì sẽ là font tahoma,còn riêng tôi đọc thì với cái table của mình thì tự chép thêm font đã set trong css vào table.

    P/S :
    - Dòng css a.toc {text-decoration: none !important; } kindle không hổ trợ.Bác dùng nó là class="toc" hay là style="text-decoration: none !important;".
    - Dropcap bác set như thế là dùng file .mobi(mobi7 & kf8) à?Chứ trên PRC cũ đâu hiển thị đúng.
     
  3. Big Bang

    Big Bang Thành viên kích hoạt

    Được thích:
    130
    .
    CSS a.toc {text-decoration: none !important; } đúng là Kindle không hỗ trợ, nhưng thêm vào cũng không sao, nếu trong tương lai nó hỗ trợ thì không phải sửa 1 đống file cũ. Muốn xóa gạch dưới của link phải dùng style trực tiếp ở thẻ <a>
    Dung lượng file thì không còn là vấn đề như cách đây vài năm. Tablet cũng phổ biến rồi, tệ lắm cũng được 16GB, tốn vài chục MB mà coi được cả tháng thì không thành vấn đề.
    Tôi không còn làm PRC nữa, chỉ làm MOBI KF8 thôi. Thực ra EPUB làm chuẩn hơn, nhưng các chương trình ePub Reader hiện có lại thua xa Kindle, đành phải chọn đọc chuẩn thay vì làm chuẩn. :))
    Tôi đang định coi lại cấu trúc của các file html/css để làm cả MOBI và EPUB mà không phải chuyển đổi gì nhiều, cùng lắm chỉ chạy 1 script là có thể chuyển đổi qua lại. Mấy cái custom tag chỉ dành cho KF8 dùng càng ít càng tốt.
    Kindle for Android hiện đã hỗ trợ cascading NCX như ePub nhưng hình thức thì đẹp hơn nhiều. Chỉ có điều Amazon vì để bán được tablet nên cố ý để Kindle for PC trông như miếng giẻ rách!
     
  4. comeback

    comeback Thành viên kích hoạt

    Được thích:
    2,964
    Nếu bác làm kf8 chỉ đọc không có chia sẽ nhìu,có thể dùng kindleunpack để cắt file mobi both ra,sẽ cho ra 2 định dạng azw3(kf8) và .mobi7.File azw3 chép vào kindle app vẫn chạy tốt,dung lượng cũng như mobi cũ chỉ nặng thêm phần nhúng font.
    Nếu vẫn muốn dùng mobi both,bác có thể dùng soft cắt bớt phần soure (cái thằng này chỉ dành cho up lên amazon thôi,mình không cần lại nặng file).Với file mobi dùng cái này nén HC,file mobi xuất ra chỉ gấp đôi file mobi both.
    P/S: Trong epub chỉ có 2 tag: <mbp:pagebreak /> và <mbp:nu></mbp:nu> do là đọc quyền của mobipocket nên nó không hổ trợ, ngoài ra mấy thứ khác chạy tốt.Ngoài ra khi làm epub thì file html bắt buộc phải chia nhỏ vì trình đọc epub không load nổi file dung lượng lớn.
     
    Chỉnh sửa cuối: 7/10/14
  5. Tử Mộc

    Tử Mộc Thành viên kích hoạt

    Được thích:
    19
    Các đồng chí cho phép tớ xía mồm vào đây cho nó xôm:

    Tình hình là dạo này bị nghiện cái Kindle for PC, và đã xóa luôn cái Mobipocket Reader đã theo mông tớ 6 năm nay. Cái Kindle có ưu điểm cực hay đó là nó quá giống một quyển sách, đọc = Mobipocket nếu để chế độ 1 column thì nó sẽ tràn hết cả màn hình => mỏi mắt => cận lòi...
    Kindlegen bản chất chính là prcgen hồi xưa, tất nhiên là những gì chạy bằng command line luôn nhanh hơn những cái có GUI.

    Vì thế để tạo ra 1 file .mobi với dung lượng nén high-compress (huffdic compression) bạn dùng câu lệnh sau
    Mã:
    kindlegen -c2 '~PATH\file.html'
    Còn nếu bạn không thích dùng Command Prompt thì mình bonus cho bạn thêm mấy tiểu xảo (powershell là phần mềm có sẵn trong Windows 7, dùng search trong nút Start là nó ra):
    B1: Bật powershell lên và táng vào đoạn code sau
    Mã:
    New-PSDrive ebooks filesystem '~PATH\Documents\eBooks'
    Set-Alias -Name kg -Value ~PATH\eBooks\kindlegen.exe
    Lưu ý là ~PATH là nơi mà bạn đặt file kindlegen.exe, mình đặt nó ở một thư mục tên là eBooks ngoài desktop, nơi này cũng là nơi chứa các file .html

    B2: Trong powershell, bạn gõ vào

    Mã:
    cd ebooks:
    kg [-c0|-c1|-c2(*)] '~PATH\ebook.html(**)'
    (*)Phần này là phần optional, mặc định là -c0.
    -c0no compression
    -c1standard DOC compresion
    -c2huffdic compression

    (**)Đặc điểm của Powershell đó là những gì mà Windows Command Prompt có thì nó cũng có, những gì không có nó lại có. Nó không khác gì bạn sử dụng Linux, vì thế thay vì phải gõ nguyên đoạn ~PATH, bạn chỉ cần đơn giản ấn TAB nhiều lần cho đến khi đúng file HTML mà bạn cần.

    B3 (optional): Ở B1 bạn dùng 2 câu lệnh, nhưng nó chỉ là tạm thời đối với session đó. Để vĩnh cửu, bạn cần nhét 2 câu lệnh đó vào 'C:\Users\{USERS}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'


    P/s: Thấy có bạn nào bảo \r\n là của Windows thì đính chính tí là điều đấy cũng đúng :)) Nhưng \r là dành cho DOS còn nếu chỉ dùng regular expresion thì chúng ta chỉ cần \n là đủ, không cần \r. Qui ước end of file trên wiki đầy nhưng trong thực tế thì không phải lúc nào cũng chính xác.
    Reference: http://stackoverflow.com/questions/1761051/difference-between-n-and-r

    P/s2: http://regex101.com/ đây là trang chuyên test regex. Hi vọng giúp được cho các bạn.
     
    Chỉnh sửa cuối: 16/11/14
    babylong10 thích bài này.