Thử dùng TeXworks

tw
TeXworks
lowering the entry barrier to the TeX world

TeXworks là một trình soạn thảo văn bản cho TeX tích hợp trong TeXLive hoặc bạn có thể download về cài đặt riêng trên máy. Thế nhưng vì sao trình soạn thảo văn bản này ít người quan tâm đến. Có phải vì nó yếu hơn các trình soạn thảo văn bản khác? Không-ngược lại nó cực kỳ mạnh như slogan trên đã nói. Vậy thì tại sao cho đến nay ít có hướng dẫn nào về việc nên dùng TeXworks cho người dùng TeX. Có nhiều lý do, ở đây chúng tôi sẽ không giải thích các lý do “tại sao” mà thay vào đó, tôi  viết bài hướng dẫn này một cách tường minh và hữu ích để TeXworks trở nên thân thiện và góp phần làm cho TeX ngày càng bình dân hơn.

1. DownloAD và cài đặt.

http://www.tug.org/texworks/

2. điều chỉnh để phù hợp với người dùng TEXMaker

Trình biên dịch pdflatex mà người dùng TeXmaker hay sử dụng có nhiều tuỳ chọn, nhưng mặc định của  TeXWorks không có những tuỳ chọn đó. Vì vậy để tương thích ta thực hiện như sau:

  • mở  menu, chọn  Edits -> Preferences  -> Typesetting 
  • chọn Processing tools là pdfLaTeX bấm đúp hoặc nhấp vào Edit
  • Trên ô Arguments bằng cách chọn dấu +  để chèn thêm tuỳ chọn –shell-escape và  -interaction=nonstopmode
  • dùng các mũi tên để đưa các tuỳ chọn này lên trên các tuỳ chọn mặc định.

3. viết bổ sung các script

TeXworks không cung cấp các macro như TeXStudio hay các  User Tags như TeXMaker. Bù lại nó cung cấp một số lượng nhiều tuỳ ý các script để các bạn biên tập (từ file mẫu) thành các script của riêng mình nhằm đơn giản hoá quá trình nhập liệu.

    • Bạn mở menu, chọn Help -> Settings and Resources 
    • Vào thẻ Storage Locations bạn bấm vào link trong Resources  sẽ dẫn đến thư mục chứa các script
    • Vào thư mục con Scripts -> LaTeX Styles   chọn một java script, ví dụ toggleBold.js, mở script này save thành một script của riêng bạn, ví dụ khung,js
      // TeXworksScript
      // Title: Toggle Bold
      // Shortcut: Ctrl+Shift+B
      // Description: Encloses the current selection in \textbf{}
      // Author: Jonathan Kew
      // Version: 0.3
      // Date: 2010-01-09
      // Script-Type: standalone
      // Context: TeXDocument
      
      function addOrRemove(prefix, suffix) {
        var txt = TW.target.selection;
        var len = txt.length;
        var wrapped = prefix + txt + suffix;
        var pos = TW.target.selectionStart;
        if (pos >= prefix.length) {
          TW.target.selectRange(pos - prefix.length, wrapped.length);
          if (TW.target.selection == wrapped) {
            TW.target.insertText(txt);
            TW.target.selectRange(pos - prefix.length, len);
            return;
          }
          TW.target.selectRange(pos, len);
        }
        TW.target.insertText(wrapped);
        TW.target.selectRange(pos + prefix.length, len);
        return;
      };
      
      addOrRemove("\\textbf{", "}");
      

Biên tập file này như sau:

  • Bạn phải edit dòng thứ  2
    // Title: Toggle Bold  thành // Title:  Khung
  • Biên tập dòng thứ ba
    // Shortcut: Ctrl+Shift+B thành // Shortcut: Ctrl+Shift+K
  • Biên tập các dòng từ  4 đến 9 tuý ý bạn.
  • Biên tập dòng cuối cùng:
    addOrRemove("\\textbf{", "}");
    thành
    addOrRemove("\\khung{", "}");

trong đó \khung là một macro mà bạn tự viết dùng để đóng khung một đoạn văn bản và viết vào file TeX ngay sau khai báo \begin{document}. Nếu bạn thường đóng khung hãy viết macro vào template.

\newcommand{khung}[1]{\hspace*{-.6cm}
\begin{tabular}{|l|}
\hline
\parbox{.96\textwidth}{\vphantom{\tiny i}#1\\ \vphantom{\tiny i}}  \\
\hline
\end{tabular}}

Để sử dụng script này, các bạn quét đen đoạn văn bản muốn đóng khung, mở menu, chọn scripts -> LaTeX Style -> chọn đúng script khung hoặc bấm CTRL+SHIFT+K.

Theo mô hình đó, các bạn tạo ra các script để xử lý văn bản. Ví dụ, các bạn hãy viết một script để  sử dụng macro sau đây:

\parbox{0.475\textwidth}{}

gợi ý: addOrRemove("\\parbox{0.475\textwidth}{", "}");
script này dùng để tạo hai hộp văn bản đứng song song, ví dụ một bên là chữ và một bên là hình.

 

4. template

TeXworks cũng cho phép bạn tạo ra nhiều template để tiện sử dụng. Ngoài các template có sẵn các bạn hãy tạo ra một thư mục và trong thư mục đó các template của riêng mình. Chúng tôi giới thiệu template book.tex và xelatex.tex.

Bạn lại mở menu, chọn Help -> Settings and Resources, bấm vào link Resoureces  bạn được dẫn tới một thư mục con chứa scripts và templates. Khi vào thư mục templates bạn hãy tạo một thư mục con, ví dụ mvb. Soạn nột file tex tên là book.tex và save vào thư mục này. Chúng tôi gợi ý file này như sau:

\documentclass[12pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[vietnam]{babel}
\usepackage[utopia]{mathdesign}
\usepackage{times}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{calc}
\usepackage{pgf,tikz}
\usepackage{enumitem}
\usepackage[left=4.25cm,right=4.25cm,top=4.85cm,bottom=4.85cm]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{longtable}
\renewcommand{\textup}{\MakeUppercase}

%------------------------------------------------------------------
\newcommand{\KHUNG}[1]{\hspace*{-.6cm}
\begin{tabular}{|l|}
\hline
\parbox{.96\textwidth}{\vphantom{\tiny i}#1\\ \vphantom{\tiny i}}  \\
\hline
\end{tabular}}
%----------------Liệt kê bằng số khoanh tròn----------------------------------------------
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
%------------------------------------------------------------------
\begin{document}

%------------------------Header và Foooter---------------------------------------
\setlength{\parskip}{3mm plus4mm minus3mm}

\fancyhf{}
\lhead{\textbf{\large Header
}}
\chead{}
\rhead{}
\cfoot{\ifthenelse{\isodd{\thepage}}{\textbf{
} }{ }}
\rfoot{\ifthenelse{\isodd{\thepage}}{\thepage}{}}
\lfoot{\ifthenelse{\isodd{\thepage}}{}{\thepage}}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}
%----------------------------------------------------------------

VB
\end{document}
%\pagenumbering{gobble} không đánh số trang
%\usepackage[mirror]{crop} để in ngược cho nhà in
%\setlength{\parskip}{3mm plus4mm minus3mm} khoảng cách giữa hai đoạn
%\setcounter{secnumdepth}{0} không liệt kê mục lục đến subsection

Nếu bạn thích sử dụng xelatex, sau đây là một template. Lưu ý khi bạn viết dòng thứ nhất của file tex là
% !TEX TS-program = xelatex
thì TeXworks tự động mở trình biên dịch là xelatex

% !TEX TS-program = xelatex
\documentclass[12pt,a4paper]{article}
\usepackage[utopia]{mathdesign}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{color}
\usepackage{graphicx}
\usepackage[left=4.25cm,right=4.25cm,top=4.85cm,bottom=4.85cm]{geometry}
\usepackage{color}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{longtable}
\renewcommand{\textup}{\MakeUppercase}

%---------------Header và Footer---------------------------------------------------
\newcommand{\KHUNG}[1]{\hspace*{-.6cm}
\begin{tabular}{|l|}
\hline
\parbox{.96\textwidth}{\vphantom{\tiny i}#1\\ \vphantom{\tiny i}}  \\
\hline
\end{tabular}}
\begin{document}
\fancyhf{}
\lhead{Header
}
\chead{}
\rhead{}
\cfoot{\ifthenelse{\isodd{\thepage}}{\textbf{
} }{ }}
\rfoot{\ifthenelse{\isodd{\thepage}}{\thepage}{}}
\lfoot{\ifthenelse{\isodd{\thepage}}{}{\thepage}}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}
%----------------------------------------------------------------

\setmainfont{Times New Roman}
 \fontsize{12}{12}\selectfont
 {\setmainfont{Arial}
 \fontsize{12}{12}\selectfont
}

VB

\end{document}
%\pagenumbering{gobble} không đánh số trang
%\usepackage[mirror]{crop} để in ngược cho nhà in
%\setlength{\parskip}{3mm plus4mm minus3mm} khoảng cách giữa hai đoạn
%\setcounter{secnumdepth}{0} không liệt kê mục lục đến subsection

5. Tìm và thay thế

Tìm và thay thế thì ở đâu mà chẳng thế. Vậy mà ở TeXworks việc sử dụng biểu thức  chính qui tỏ ra hiệu quả hơn  rất nhiều. Đơn cử một ví dụ sau:

Bạn có nhu cầu copy một file soạn bằng MS Word vào TeX để sử dụng phần văn bản (không định dạng). Và nếu bạn am hiểu mathtype, các công thức toán học trong Word sẽ được  mathtype tự động chuyển thành code LaTeX. Vấn đề còn lại là dàn trang lại trong TeX. Phần sau chúng tôi sẽ nói sự ưu việt của TeXworks khi làm công việc dàn trang lại này.
Các dòng văn bản của Word khi xuống dòng chuyển sang LaTeX sẽ không được hiểu là xuống dòng, vì TeX chỉ hiểu là xuống dòng khi nhấn hai lần Enter hoặc kết thúc bằng \\ (hai dấu backslash).

Tôi tự thực hành bằng cách copy nguyên chương 1 cuốn tiểu thuyết “Đèn không hắt bóng” 602 dòng, quá nhiều (không đếm nỗi) xuống dòng. Nếu đưa vào LaTeX, chỉ cần điều chỉnh xuống dòng thành 2 lần xuống dòng bạn sẽ mất một khoảng thời gian … không ngắn hơn thời gian gõ lại đoạn văn bản 602 dòng đó.😦
Vậy tôi đã làm gì?

Để con trỏ ở đâu cũng được trong văn bản, tôi chọn Search -> Replace (tìm và thay thế) bằng cách nhấn CTRL-R (quá quen thuộc). Tôi viết vào ô Replace\n
và ô With\n\n, check vào Regular expression và cuối cùng chọn Replace All. Trong vòng chưa quá 3 giây tất cả các xuống dòng (bằng cách nhấn Enter trong Word) đã được thay bằng hai lần Enter với 1203 dòng. Và như vậy LaTeX sẽ tiếp tục xử lý văn bản mới. Chuyện này nếu không nói ra thì không ai biết.🙂

6. auto completion

Không giống các trình soạn thảo văn bản khác như TeXmaker hay TeXStudio có sẵn các ký hiệu toán học hoặc các tính năng khác để nhập liệu thuận tiện. Đối với TeXworks không có sẵn các thứ này trên các panel để ta chọn. Đó cũng là một trong các lý do mà ta ít sử dụng TeXworks. Tất nhiên mất cái này thì bạn sẽ được cái khác, ví dụ tốc độ biên dịch file tex bằng pdflatex hay xelatex nhanh hơn rất nhiều so với TeXmaker, bạn sẽ thấy điều đó khi văn bản của bạn là một quyển sách trên dưới 200 trang,

Bù lại cho việc không có các tiện ích trên các Panel để sử dụng, TeXworks cung cấp cho bạn một bộ auto complete đồ sộ để bạn sử dụng. Mới đầu các bạn không nhớ hết nên tôi gợi ý chỉ sử dụng những cái hay sử dụng và in ra giấy để bên cạnh bàn phím. Khi đã thuộc rồi các bạn sẽ không cần đến nữa.

  1. Ví dụ, khi lập bảng với longtable, dòng tiêu đề các bạn muốn đưa văn bản ra giữa, thay vì gõ \centering, bây giờ ở trong TeXworks các bạn gõ chữ c và nhấn Tab, autocompletion sẽ hoàn thành từ \centering nói trên.
  2. Gõ chữ e và nhấn Tab, autocompletion sẽ hoàn thành từ \emph{} (dùng chuyển từ roman sang italic và ngược lại)
  3. Khi đang soạn sách, bạn gõ chữ ch và bấm Tab auto sẽ cho bạn \chapter, nhấn chữ s và Tab sẽ được \section, nhấn ss và tab sẽ được \subsection, nhấn sss và tab sẽ được \subsubsection.
  4. Khi gõ ba và nhấn Tab các bạn sẽ được:
    \begin{array} \end{array}
  5. bd bạn sẽ được môi trường

    \begin{description}

    \item[]

    \end{description}•
    nếu bạn nhấn CTRL Tab con trỏ sẽ nhảy vào dấu bullet kế cận.

  6. be bạn sẽ được môi trường
    \begin{enumerate}
    \item
    \end{enumerate}•

    nếu bạn nhấn CTRL Tab con trỏ sẽ nhảy vào dấu bullet kế cận.
  7. bi bạn sẽ được môi trường
    \begin{itemize}
    \item
    \end{itemize}•

    nếu bạn nhấn CTRL Tab con trỏ sẽ nhảy vào dấu bullet kế cận.
  8. bt bạn sẽ được môi trường

    \begin{tabular}{}

    \end{tabular}•

    nếu bạn nhấn CTRL Tab con trỏ sẽ nhảy vào dấu bullet kế cận.

  9. it (và bấm Tab) bạn sẽ được \item
  10. pb (và bấm Tab) bạn sẽ được \parbox{}{}, tham số thứ nhất bạn có thể gõ tw (Tab) sẽđược \textwidth
  11. bal (và bấm Tab) ta sẽ được \begin{align}\end{align}
    (vừa gõ vừa đọc begin align)
  12. balis (và bấm Tab) ta sẽ được \begin{align*}\end{align*}
    (vừa gõ vừa đọc begin align star)
  13. bce (và bấm Tab) ta sẽ được \begin{center}\end{center}
    (vừa gõ vừa đọc begin center)
  14. beq (và bấm Tab) ta sẽ được \begin{equation}\end{equation}
    (vừa gõ vừa đọc begin equation)
  15. bequs (và bấm Tab) ta sẽ được \begin{equation*}\end{equation*}
    (vừa gõ vừa đọc begin equation star)
  16. \bf (và bấm Tab) ta sẽ được \textbf{•}
  17. bver (và bấm Tab) ta sẽ được \begin{verbatim}\end{verbatim}•

Các chữ cái hy lạp ở trong Toán học sẽ gõ làm sao? Rất dễ nếu bạn biết đọc nó. Cách gõ như sau:

  • muốn gõ ký \(\alpha\) bạn sẽ gõ chữ dx gõ tiếp chữ a  nghĩa là gõ liền tù tì dxa (Tab) sẽ được \(\alpha\);
  • muốn gõ chữ \(\delta\) các bạn gõ dxd (Tab)
  • muốn gõ chữ \(\Delta\) các bạn gõ dxcd (Tab) (c là viết của chữ capital)
  • muốn gõ chữ \(\epsilon\) gõ dxe (Tab)
  • muốn gõ chữ \(\varepsilon\) gõ dxve (Tab)
  • v.v…
  • gõ dxo (Tab) được \(\omega\); gõ dxco (Tab) được \(\Omega\)

Ưu điểm không thể chê vào đâu được đó là, một ký tự hy lạp đứng riêng trong văn bản hay trong chế độ toán học đều nhập được như trên, nghĩa là

$\(\alpha\) x + \(\beta\)y =\(\gamma\)$ vẫn hiểu là

\alpha x + \beta y =\gamma

Chúa Jesus nói: “Ta là \(\alpha\) và \(\omega\), chẳng bởi ta thì không ai được đến cùng cha.

còn tiếp

7. biên dịch và đồng bộ hoá

 

2 responses to “Thử dùng TeXworks

  1. ba tab \begin{array}

    \end{array}•
    bc tab \begin{cases}

    \end{cases}•
    bd tab \begin{description}
    \item[]

    \end{description}•
    be tab \begin{enumerate}
    \item

    \end{enumerate}•
    bf tab \begin{frame}

    \end{frame}
    bi tab \begin{itemize}
    \item

    \end{itemize}•
    bm tab \begin{minipage}{}

    \end{minipage}•
    bt tab \begin{tabular}{}

    \end{tabular}•
    bal tab \begin{align}

    \end{align}•
    balis tab \begin{align*}

    \end{align*}•
    bar tab \begin{array}

    \end{array}•
    bce tab \begin{center}

    \end{center}•
    beq tab \begin{equation}

    \end{equation}•
    bequs tab \begin{equation*}

    \end{equation*}•
    bver tab \begin{verbatim}

    \end{verbatim}•

  2. Chúc Thầy một đêm ngon giấc và ngày mới thật vui nhé :)))))

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s