Hướng dẫn Giới thiệu biên tập ebook bằng Calibre Editor

Thảo luận trong 'Hướng dẫn chung' bắt đầu bởi inno14, 15/9/17.

  1. Hungnth93

    Hungnth93 Lớp 1

    Cảm ơn bác, nhưng ý mình là trong đoạn văn có một số chỗ có dấu mở ngoặc kép nhưng lại không có dấu đóng ngoặc kép thì liệu có cách nào tìm ra những đoạn đó để chỉnh sửa không ạ.
    Mình hỏi câu trước không rõ ý lắm, bác thông cảm ạ.
     
  2. inno14

    inno14 Lớp 8

    1. Chạy Smarten Punctuation
    * Mục đích để các punctuation trong văn bản không bị lẫn lộn với các punctuation trong các câu lệnh html.
    01.png
    2. Chạy Regex Function Common_punctuation
    * Mục đích: trả các punctuation hợp lệ về dạng thường
    * Find: ‘(.*?)’|“(.*?)”
    * Regex Function:
    Mã:
    #Find:‘(.*?)’|“(.*?)”
    def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
        if match.group(1): return "'"+match.group(1)+"'"
        if match.group(2): return '"'+match.group(2)+'"'
    # Ensure that when running over multiple files, the files are processed
    # in the order in which they appear in the book
    replace.file_order = 'spine'
    02.png
    * Kết quả:
    03.png
    3. Tìm và sửa các punctuation chưa hợp lệ.
    Tìm: ‘|’|“|”
    Sửa: đóng mở các punctuation cho hợp lệ bằng " và ' bình thường.
    Sau đó chạy Smarten punctuation
    04.png
    4. Kết quả cuối cùng
    05.png
     
  3. Hungnth93

    Hungnth93 Lớp 1

    Cảm ơn bác đã trợ giúp nhiều lắm!
    Đa tạ! Đa tạ!
     
    inno14 thích bài này.
  4. inno14

    inno14 Lớp 8

    Rất vui vì đã hỗ trợ được cho bạn, trong quá trình làm eBook có vướng chỗ nào thì bạn cứ nêu nhé, mọi người cùng trao đổi để tích lũy kinh nghiệm :)
     
    Hungnth93 and amylee like this.
  5. iamtnl

    iamtnl Lớp 4

    Hầu hết các ký tự thường dùng có thể tra tại đây. Vui lòng đăng nhập hoặc đăng ký để xem link

    Còn các ký tự lạ hơn thì xem tại đây nhé. Vui lòng đăng nhập hoặc đăng ký để xem link
     
    machine, amylee and inno14 like this.
  6. Hungnth93

    Hungnth93 Lớp 1

    Bác tài thật, cách này lọc riêng được những đoạn đúng với những đoạn chưa đúng luôn. Mình cứ sửa tay thì không biết đến bao giờ, cảm ơn bác lần nữa ạ cute_smiley20
     
    inno14 thích bài này.
  7. inno14

    inno14 Lớp 8

    Nếu ocr bằng abbyy rất hay gặp tình trạng " được nhận dạng thành '' :)
     
    Hungnth93 thích bài này.
  8. Hungnth93

    Hungnth93 Lớp 1

    Dạ vâng đúng rồi ạ.
    Nhân tiện bác cho mình hỏi về chỉnh sửa dropcap ạ. Bác có cách nào để drop hiện đẹp (mình dùng kindle) tự động ứng với tất cả line-height không ạ, giống như khi khai báo ảnh max-witdh: 100% thì ảnh sẽ tự điều chỉnh co giãn theo màn ấy ạ.

    Mình chỉnh sửa tất cả đều phải theo line-height: 1.4; thì mới không phải căn lại margin trên máy đọc sách ạ.

    Thực ra cũng không phải là lỗi hay khó khăn gì, nhưng nếu có một dạng khai báo dropcap nào khác tối ưu hơn thì tốt quá ạ. Mình cảm ơn bác nhiều ạ.
    cute_smiley7
     
    Chỉnh sửa cuối: 25/1/21
    inno14 thích bài này.
  9. inno14

    inno14 Lớp 8

    Hì, cái drop này mình bó tay, sau khi được sư phụ chỉ điểm cho khai báo giá trị line high 1.x (ko có đơn vị) để dịch chuyển ký tự đầu xuống một xíu mà ko đội dòng là mình đã thỏa mãn nên ko tìm hiểu sâu thêm.
     
    Hungnth93 thích bài này.
  10. Hungnth93

    Hungnth93 Lớp 1

    Dạ vâng, cảm ơn bác ạ cute_smiley20
     
    inno14 thích bài này.
  11. iamtnl

    iamtnl Lớp 4

    Epub dùng dropcap thì có thể thử thuộc tính initial-letter. Vui lòng đăng nhập hoặc đăng ký để xem link. Tuy nhiên cái này thì chưa phải chuẩn nên ít được hỗ trợ.

    Kindle dùng dropcap thì nên dùng định dạng KFX, hỗ trợ dropcap rất đẹp. Vui lòng đăng nhập hoặc đăng ký để xem link
     
    Hungnth93, tran ngoc anh and inno14 like this.
  12. inno14

    inno14 Lớp 8

    * 26/1/2021: Làm một cái box đơn giản.
    1. Câu hỏi:
    2. Một gợi ý trong rất nhiều cách thiết kế. Các bạn có thể thay đổi các giá trị lề trong, lề ngoài của các khối văn bản theo cú pháp: trên - phải - dưới trái.
    2.1 Thiết kế html
    Mã:
      <div class="box1">
    
        <div class="box1_title">Tiêu đề của hộp</div>
    
        <div class="box1_content">
    
          <p class="box1_content_title">Tiêu đề của nội dung</p>
    
          <p class="box1_content">Nội dung của hộp. Đoạn văn bản thứ nhất. Đoạn văn bản thứ nhất. Đoạn văn bản thứ nhất.</p>
    
          <p class="box1_content">Nội dung của hộp. Đoạn văn bản thứ hai. Đoạn văn bản thứ hai. Đoạn văn bản thứ hai</p>
    
          <p class="box1_content_notes">Ghi chú của hộp</p>
    
        </div>
    
      </div>
    explorer_f7e8pOLs1A.png

    2.2 Định dạng Css
    Mã:
    div.box1{
      border: 2px solid;
      margin:0.5em; padding:0;}
    div.box1_title{
      border-bottom: 2px solid;
      margin:0; padding:0.2em 0 0.2em 0;
      font-weight: bold; font-size: 1.5em;
      text-transform: uppercase; text-align:left; text-indent: 1em;}
    div.box1_content{
      margin:0; padding:0.2em 0.5em 0.2em 0.5em;}
    p.box1_content_title{
      margin:0; padding:0.2em 0 0.2em 0;
      font-weight: bold;font-size: 1.2em;
      text-align:left;text-indent: 0;}
    p.box1_content{
      margin:0;padding:0;
      font-weight: normal;font-size:1em;
      text-align:justify;text-indent: 1.5em;}
    p.box1_content_title + p.box1_content{
      margin:1em 0 0 0;padding:0;
      text-indent: 0;}
    p.box1_content_title + p.box1_content:first-letter{
      float: left;
      font-size: 2.5em;
      margin: -0.1em 0 -0.2em 0;padding:0;}
    p.box1_content_notes{
      margin:1em 0 0 0;padding:0;
      font-weight: normal;font-size: 1em;
      text-align:justify;text-indent: 0;}
    GA9KfhajC2.png
     
  13. inno14

    inno14 Lớp 8

    *26/1/2021: Dùng Regex Function để lưu trữ cấu trúc chiếc hộp bên trên.
    - Mục đích: để dễ dàng gọi ra khi cần, các bạn có thể áp dụng để lưu các cấu trúc khác.
    1. Tạo Regex Function box1_function
    Mã:
    #Find:(box1_html)|(box1_css)
    def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
        if match.group(1): return '''
      <div class="box1">
    
        <div class="box1_title">Tiêu đề của hộp</div>
    
        <div class="box1_content">
    
          <p class="box1_content_title">Tiêu đề của nội dung</p>
    
          <p class="box1_content">Nội dung của hộp. Đoạn văn bản thứ nhất.</p>
    
          <p class="box1_content">Nội dung của hộp. Đoạn văn bản thứ hai.</p>
    
          <p class="box1_content_notes">Ghi chú của hộp</p>
    
        </div>
    
      </div>
        '''
        if match.group(2): return '''
    div.box1{
      border: 2px solid;
      margin:0.5em; padding:0;}
    div.box1_title{
      border-bottom: 2px solid;
      margin:0; padding:0.2em 0 0.2em 0;
      font-weight: bold; font-size: 1.5em;
      text-transform: uppercase; text-align:left; text-indent: 1em;}
    div.box1_content{
      margin:0; padding:0.2em 0.5em 0.2em 0.5em;}
    p.box1_content_title{
      margin:0; padding:0.2em 0 0.2em 0;
      font-weight: bold;font-size: 1.2em;
      text-align:left;text-indent: 0;}
    p.box1_content{
      margin:0;padding:0;
      font-weight: normal;font-size:1em;
      text-align:justify;text-indent: 1.5em;}
    p.box1_content_title + p.box1_content{
      margin:1em 0 0 0;padding:0;
      text-indent: 0;}
    p.box1_content_title + p.box1_content:first-letter{
      float: left;
      font-size: 2.5em;
      margin: -0.1em 0 -0.2em 0;padding:0;}
    p.box1_content_notes{
      margin:1em 0 0 0;padding:0;
      font-weight: normal;font-size: 1em;
      text-align:justify;text-indent: 0;}
            '''
    # Ensure that when running over multiple files, the files are processed
    # in the order in which they appear in the book
    replace.file_order = 'spine'
    2. Gọi box1 ra khi cần
    2.1 Tạo khóa
    - Ở html gõ box1_html vào vị trí cần đặt box
    ebook-edit_Hrtg0RuP7x.png
    - Ở css gõ box1_css ở lần đầu tiên gọi box
    ebook-edit_mG8jyDTNVB.png
    - Sau khi tạo xong khóa thì giữ nguyên các tab vừa mở.
    2.2 Thay khóa
    Find: (box1_html)|(box1_css)
    Function: box1_function
    Mode: Regex-function / Open files
    Replace all.
    ebook-edit_13qwZnHoRW.png
     
    amylee and Bọ Cạp like this.
  14. Hungnth93

    Hungnth93 Lớp 1

    Mình cảm ơn bạn rất nhiều, nhưng hiện tại thì nếu có cách nào khai báo để dropcap hiện tự động co giãn, tương ứng theo line-height, mà không phải căn lại margin cho chữ dropcap ấy thì thật sự sẽ tốt hơn rất nhiều.
    Ở dưới là bản Chúa Nhẫn mình đã tải từ forum mình và đang đọc và soát chính tả làm ví dụ ạ.
    Nếu có cao nhân nào biết cách để tối ưu món dropcap này thì chia sẻ thì tốt biết mấy ạ. Mình cảm ơn trước ạ.
    [​IMG]
     

    Các file đính kèm:

  15. vudinhthinh

    vudinhthinh Lớp 2

    Bác dùng font gì mà đẹp vậy?
     
  16. Hungnth93

    Hungnth93 Lớp 1

    Header với Dropcap mình chọn trong bộ font UTM việt hoá có trên mạng thôi ạ. Còn font của đoạn văn thì là bokerlam bác ạ. Mình có đính kèm đó ạ
     

    Các file đính kèm:

    vinhhoa and inno14 like this.
  17. iamtnl

    iamtnl Lớp 4

    Thì mình có nói là có 2 option đó mà. Có cần căn margin gì đâu. Cụ thể là kindle vs định dạng KFX đây.

    Screen Shot 2021-01-26 at 16.43.15.png Screen Shot 2021-01-26 at 16.43.49.png
     
    inno14 and Hungnth93 like this.
  18. Hungnth93

    Hungnth93 Lớp 1

    Ôi, thật không vậy bạn, bạn có thể nói rõ hơn về định dạng KFX này được không ạ. Vì mình trước giờ hay dùng định dạng azw3 nên kindle previewer không cho đọc trên PC, căn chỉnh rất mất thời gian ạ.
     
  19. iamtnl

    iamtnl Lớp 4

    Dùng calibre tải 2 plugin KFX Input và KFX Output về xài thôi nhé. Làm sách epub xong convert sang KFX rồi đẩy vào kindle thôi.

    Code CSS cho dropcap. Margin chỉ cần căn tương đối để kindle nhận diện đấy là dropcap thôi, sau khi convert sang KFX thì auto đẹp, tha hồ đổi font chỉnh line-height.

    Còn ở epub mà muốn căn dropcap theo line-height thì có thể thử đặt font-size toàn bộ theo đơn vị em. Tuy nhiên cũng chỉ là tương đối do còn phụ thuộc vào height của font dropcap và font của body text.

    Mã:
    h1+p::first-letter {
        font-family: "Tarif Medium";
        font-weight: normal;
        font-size: 3.2em;
        float: left;
        margin-top: -0.25em;
        margin-bottom: -0.4em;
        margin-right: 5px;
    }
    
    @media amzn-kf8 {
        h1+p::first-letter {
            font-size: 2.2em;
            margin-right: 0;
        }
    }
     
    amylee, Hungnth93 and inno14 like this.
  20. Hungnth93

    Hungnth93 Lớp 1

    Đúng thứ mình tìm kiếm đây ạ. Mình cảm ơn bác rất nhiều ạ cute_smiley7cute_smiley7
     

Chia sẻ trang này