Chủ Nhật, 22 tháng 6, 2014

Đánh nhãn công thức trong latex

Đánh số công thức, phương trình và tham chiếu đến công thức, phương trình
\LaTeX tự độnh đánh số phương trình. Trong TeXmaker, mở Math, Numbered Equation, ta nhận được môi trường
\begin{equation}
\end{equation}
Công thức toán học để trong môi trường này, không được đặt trong cặp $ $ như thông thường.
Muốn đánh số phương trình một cách thủ công, có thể sử dụng macro sau đây:
\newcommand{\dstc}[2]
{
\newdimen\stringwidth\setbox0=\hbox{#1}
\stringwidth=\wd0
\hspace*{-\parindent}\hspace*{.5\textwidth}\hspace*{-.5\wd0}#1\hfill #2\bigskip
}
Sau đây là các ví dụ:
\dstc{$I=\displaystyle\int_0^1f(x)dx$}{(1′)}
\dstc{$y=2x^3-3x^2+5x-1$}{(2′)}
\dstc{$\sqrt{x^2-6x+8}+\sqrt{9-4x-3x^2}$}{(3′)}
kết quả:
Để tham chiếu đến một công thức hay một phương trình đã được đánh số, ta thực hiện như sau:
Bước 1: Đặt tên cho phương trình bởi lệnh \label{}
Bước 2: Muốn tham chiếu đến phương trình đã đặt tên ta dùng lệnh \ref{}
Khi biên dịch, chúng ta biên dịch 2 lần thì việc tham chiếu ta có hiệu lực.
\begin{equation}\label{ptvt}
y=f(x)=\sqrt{x^2-4x+3}-\sqrt{x^2+5x-9}\\
\end{equation}
Theo biểu thức (\ref{ptvt}) ta viết lại như sau:
\begin{equation}\nonumber
y=f(x)=\dfrac{-9x+12}{\sqrt{x^2-4x+3}-\sqrt{x^2+5x-9}}\\
\end{equation}
Trong ví dụ trên có một chi tiết các bạn nên lưu ý, đó là chúng ta sử dụng \nonumber để không đánh số phương trình (đôi khi trong thực tế, rất cần điều này). Một lưu ý khác cũng giống như trong môi trường \begin{equation}, các công thức toán trong môi trường \begin{align} (đề cập ở dưới) không để trong cặp dấu $.
4. Sử dụng \begin{align}
Muốn gióng thẳng công thức toán học theo một vị trí nào đó của phương trình đầu tiên, ta dùng môi trường \begin{align}
Trong TeXmaker, mở Math, chọn \begin{align} (AMS), ta sẽ được:
\begin{align}
\end{align}
Ví dụ:
\begin{align}
y&=f(x)=\sqrt{x^2-4x+3}-\sqrt{x^2+5x-9}\\
&=\dfrac{-9x+12}{\sqrt{x^2-4x+3}+\sqrt{x^2+5x-9}}\\
&=\dfrac{-3(x-4)}{\sqrt{x^2-4x+3}+\sqrt{x^2+5x-9}}
\end{align}
5. Tham chiếu đến số trang, đến một chương mục:
Trong khi soạn một quyển sách, thực tế có một nhu cầu là tham chiếu đến số trang (thường trang này chứa một nội dung nào đó). Ví dụ, có một nội dung mà ta biết chắc là khó hiểu đã được giải thích ở một trang nào đó, ta sẽ tham chiếu đến trang đó.
Khi đó ta đặt nhãn cho trang này như sau:
  • Chuyển đến trang cần tham chiếu, đặt nhãn cho trang bằng cách viết vào đâu đó trong trang này. Ví dụ, có môt phương trình ta đặt nhãn là pttp
    \begin{equation}\label{pttp}
    \end{equation}
  • Để tham chiếu đến trang có chứa phương trình này, ta viết:
    \pageref{pttp}
  • Còn nếu tham chiếu đến phương trình ta viết:
    (\ref{pttp})
    Sở dĩ ta dùng dấu ngoặc đơn vì nó chỉ tham chiếu đến số của phương trình, ví dụ phương trình 11, trong khi ta thường viết phương trình (11).
Muốn tham chiếu đến một chapter, section, subsection ta đặt nhãn ngay sau chapter, section, subsection đó rồi viết \ref{nhãn}.
Ví dụ: \chapter{Một số vấn đề cơ bản của Đại số hiện đại}\label{motsovande}
Khi viết \ref{motsovande}, \LaTeX sẽ tham chiếu đến số chương của chương có tên nói trên.
6. Sử dụng \parbox
Vì rất nhiều lý do, ta muốn đặt một đoạn văn bản vào trong một cái hộp (vô hình).
Macro \parbox{}{} có hai tham số: Tham số 1, chỉ độ rộng của hộp, tham số 2 viết nội dung đặt trong hộp. Khi văn bản đã được đặt vào hộp, ta có thể xử lý cái hộp này như một ký tự.
Ví dụ, ta tạo ra hai hộp văn bản: Hộp thứ 1 chứa hình ảnh và hộp thứ hai chứa văn bản minh họa cho hình ảnh đó.
\parbox{.4\textwidth}{\includegraphics[scale=.7]{flower.png} }
\parbox{.6\textwidth}{\font\f=uzcmi8v at 14pt\f
Nếu suốt đời anh không biết cho đi\\
thì dẫu đến ngày cuối cùng với anh lượng đời vẫn hẹp.\\
Khi đã tận hiến tất cả và mất tất cả\\
người ta sẽ học được nhiều từ thất bại hơn là thành công.\\
Chỉ những ai bàn chân từng nhức nhối gai đời\\
mới có thể hiểu được nỗi đau người khác.\\
Tôi có một người bạn tài hoa nhưng suốt đời lận đận\\
chính vì thế mà tôi nhìn thấy từ trái tim anh khuôn mặt con người.\\
Tình yêu chân thật không thể thiếu sự bao dung\\
Đời ngột ngạt khi trái tim quá hẹp.\\
Hạnh phúc là khi được đặt lên cuộc đời ai đó\\
trái tim của sự tin tưởng cuộc đời.}
Hai cái hộp vô hình đứng cạnh nhau mà không thấy nhau, chỉ có người ngoài mới thấy nội dung của chúng như thế đó!
Một ví dụ khác, thông thường công thức gióng thẳng theo một vị trí nào đó được đặt trong môi trường \begin{align}. Nhưng môi trường này đem công thức toán học ra giũa dòng. Nếu ta muốn đưa chúng về sát lề trái, trước hết ta đem toàn bộ môi trường bỏ vào hộp và dùng \hspace*{} để kéo (hoặc đẩy) cái hộp đó. Dấu \ đặt đầu dòng để giả làm một khoảng trắng (ký tự trắng), sau đó dùng  \hspace*{-3cm} để kéo hộp sang trái 3 cm.
\ \hspace*{-3cm}
\parbox{.9\textwidth}{\begin{align} \nonumber
y&=f(x)=\sqrt{x^2-2x+1}-\sqrt{x^2-x-1}\\ \nonumber
&=\dfrac{(x^2-2x+1)-(x^2-x-1)}{(\sqrt{x^2-2x+1})+(\sqrt{x^2-x+1})}\\ \nonumber
&=\dfrac{-x+2}{(\sqrt{x^2-2x+1})+(\sqrt{x^2-x+1})}
\end{align}}
Muốn đẩy cái hộp sang sát lề phải, thay vì dùng \hspace*{}, ta dùng lò xo \hfill. Lệnh này có tác dụng đẩy ký tự bên phải nó sang sát lề phải và ký tự trái nó sang sát lề trái.
\ \hfill
\parbox{.9\textwidth}{\begin{align} \nonumber
y&=f(x)=\sqrt{x^2-2x+1}-\sqrt{x^2-x-1}\\ \nonumber
&=\dfrac{(x^2-2x+1)-(x^2-x-1)}{(\sqrt{x^2-2x+1})+(\sqrt{x^2-x+1})}\\ \nonumber
&=\dfrac{-x+2}{(\sqrt{x^2-2x+1})+(\sqrt{x^2-x+1})}
\end{align}}
Bên trái là ký tự trắng bị \hfill đẩy sang sát lề trái, bên phải là cái hộp bị \hfillđẩy sang sát lề phải.
MỘT SỐ LƯU Ý
\hfill\hspace*{-3cm}     %  Chọn một trong hai: \hfill hoặc \hspace*{-3cm}
\parbox{.9\textwidth}{\begin{align} \nonumber
y&=f(x)=\sqrt{x^2-2x+1}-\sqrt{x^2-x-1}\\ \nonumber
&=\dfrac{(x^2-2x+1)-(x^2-x-1)}{(\sqrt{x^2-2x+1})+(\sqrt{x^2-x+1})}\\ \nonumber
&=\dfrac{-x+2}{(\sqrt{x^2-2x+1})+(\sqrt{x^2-x+1})}
\end{align}}
Để đóng khung một đoạn văn bản, các bạn phải đọc lại các phần trước. Ở đây ta tạo ra một macro hai tham số: Tham số 1: độ rộng của khung, tham số 2: nội dung viết vào khung.
  • \begin{tabular}{|c|   ý muốn nói văn bản gióng vào  giữa (center), hai bên có hai đường thẳng đứng.
  • \hline thứ nhất (dòng thứ nhì), vẽ một đường thẳng nằm ngang phía trên 
  • \hline thứ hai (dòng thứ 4), , vẽ một đường thẳng nằm ngang phía dưới. 
\newcommand{\khung}[2]{\begin{tabular}{|c|}
\hline\parbox{#1}{#2}
\\
\hline
\end{tabular} }
Đoạn code sau đây thiếu dấu \\ ở cuối dòng 2 nên \LaTeX không thực hiện được lệnh \hline (phải xuống dòng mới gạch ngang được). Ngoài ra, do nhầm lẫn, gõ dư một số ký tự.
\newcommand{\khung}[2]{\left\{\begin{tabular}{|c|}
\hline \parbox{#1}{#2}   \\
\end{tabbular} \right.
\hline
\end{tabular} }
7. Sử dụng Geogebra, xuất hình vẽ nhập vào \LaTeX, cách đánh sọc (các đường xiên) thiết diện trong hình vẽ. Phần này cực kỳ hay
Các bạn download Geogebra từ trang Web
Trước hết, download Java, sau đó download Geogebra. Việc cài đặt cũng theo thứ tự như thế. Việc thực hành Geogebra chủ yếu học trên lớp. Tài liệu sau đây rất tốt dùng để đọc thêm:
Để làm mẫu, chúng tôi vẽ một hình.  Sau đó xuất ra hình để  \includegraphics. Tuy nhiên để xử lý ảnh ta phải xuất ra \LaTeX.
  1. Sau khi vẽ hình xong, ta tắt lưới và tắt tọa độ trên trình đơn View.
  2. Chọn nút Move để viền xung quanh hình vẽ như trên hình.
  3. Sau đó, mở File, Export, Graphics View as Picture (png, eps). Lưu lại thành một file ví dụ tên là hinh.png.
  4. Qua TeXmaker, chọn LaTeX, includegraphics, chọn hình hinh.png tại địa chỉ đã lưu (tại thư mục chứa file TeX)
Bây giờ ta xuất hình ra code \LaTeX để xử lý ảnh.
  1. Cũng viền hình vẽ như trên.
  2. Mở File, Export,
Hình do Geogebra tạo ra, với tứ giác AIGJ được tô màu, do ta chọn chế độ đa giác khi vẽ tứ giác này.
Xuất ra \LaTeX chuẩn PGF/TiKz ta được đoạn code sau đem dán vào TeXMaker, save thành một file TeX và biên dịch ta được đúng hình vẽ như trên.
\documentclass[10pt]{article}
\usepackage{pgf,tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{arrows}
\pagestyle{empty}
\begin{document}
\definecolor{zzttqq}{rgb}{0.6,0.2,0}
\definecolor{xdxdff}{rgb}{0.49,0.49,1}
\definecolor{qqqqff}{rgb}{0,0,1}
\definecolor{uququq}{rgb}{0.25,0.25,0.25}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
\clip(-1.54,-0.72) rectangle (10.66,9.54);
\fill[color=zzttqq,fill=zzttqq,fill opacity=0.1]
(0,0) — (2.32,4.36) — (5.5,5.5) — (4.97,3.04) — cycle;
\draw [dash pattern=on 2pt off 2pt] (3,2)– (1,9);
\draw (1,9)– (10,2);
\draw (1,9)– (0,0);
\draw [dash pattern=on 2pt off 2pt] (0,0)– (3,2);
\draw [dash pattern=on 2pt off 2pt] (3,2)– (10,2);
\draw (10,2)– (7,0);
\draw (7,0)– (0,0);
\draw (1,9)– (7,0);
\draw [dash pattern=on 2pt off 2pt] (3,2)– (7,0);
\draw [dash pattern=on 2pt off 2pt] (10,2)– (0,0);
\draw [dash pattern=on 2pt off 2pt] (5.05,0.97)– (1,9);
\draw [dash pattern=on 2pt off 2pt] (5.5,5.5)– (0,0);
\draw [dash pattern=on 2pt off 2pt] (2.32,4.36)– (4.97,3.04);
\draw [dash pattern=on 2pt off 2pt,color=zzttqq] (0,0)– (2.32,4.36);
\draw [dash pattern=on 2pt off 2pt,color=zzttqq] (2.32,4.36)– (5.5,5.5);
\draw [color=zzttqq] (5.5,5.5)– (4.97,3.04);
\draw [color=zzttqq] (4.97,3.04)– (0,0);
\fill [color=uququq] (0,0) circle (1.5pt);
\draw[color=uququq] (-0.36,0.4) node {$A$};
\fill [color=qqqqff] (3,2) circle (1.5pt);
\draw[color=qqqqff] (3.16,2.26) node {$B$};
\fill [color=qqqqff] (10,2) circle (1.5pt);
\draw[color=qqqqff] (10.16,2.26) node {$C$};
\fill [color=xdxdff] (7,0) circle (1.5pt);
\draw[color=xdxdff] (7,-0.3) node {$D$};
\fill [color=qqqqff] (1,9) circle (1.5pt);
\draw[color=qqqqff] (1.16,9.26) node {$S$};
\fill [color=xdxdff] (5.05,0.97) circle (1.5pt);
\draw[color=xdxdff] (5.2,1.24) node {$F$};
\fill [color=uququq] (5.5,5.5) circle (1.5pt);
\draw[color=uququq] (5.66,5.76) node {$G$};
\fill [color=uququq] (3.68,3.68) circle (1.5pt);
\draw[color=uququq] (3.14,3.74) node {$H$};
\fill [color=uququq] (2.32,4.36) circle (1.5pt);
\draw[color=uququq] (1.82,4.6) node {$I$};
\fill [color=uququq] (4.97,3.04) circle (1.5pt);
\draw[color=uququq] (5.2,3.18) node {$J$};
\end{tikzpicture}
\end{document}
Sau đó ta đổi đoạn code fill tô màu thành fill đánh sọc như ở dưới. Code chỉ để tham khảo. Các bạn download file sau đây để sử dụng:
\documentclass[10pt]{article}
\usepackage{pgf,tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{arrows}
\pagestyle{empty}
\begin{document}
\definecolor{zzttqq}{rgb}{0.6,0.2,0}
\definecolor{xdxdff}{rgb}{0.49,0.49,1}
\definecolor{qqqqff}{rgb}{0,0,1}
\definecolor{uququq}{rgb}{0.25,0.25,0.25}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
\clip(-1.54,-0.72) rectangle (10.66,9.54);
\fill[pattern=north east lines, pattern color=black]
%\fill[color=zzttqq,fill=zzttqq,fill opacity=0.1]
(0,0) — (2.32,4.36) — (5.5,5.5) — (4.97,3.04) — cycle;
\draw [dash pattern=on 2pt off 2pt] (3,2)– (1,9);
\draw (1,9)– (10,2);
\draw (1,9)– (0,0);
\draw [dash pattern=on 2pt off 2pt] (0,0)– (3,2);
\draw [dash pattern=on 2pt off 2pt] (3,2)– (10,2);
\draw (10,2)– (7,0);
\draw (7,0)– (0,0);
\draw (1,9)– (7,0);
\draw [dash pattern=on 2pt off 2pt] (3,2)– (7,0);
\draw [dash pattern=on 2pt off 2pt] (10,2)– (0,0);
\draw [dash pattern=on 2pt off 2pt] (5.05,0.97)– (1,9);
\draw [dash pattern=on 2pt off 2pt] (5.5,5.5)– (0,0);
\draw [dash pattern=on 2pt off 2pt] (2.32,4.36)– (4.97,3.04);
\draw [dash pattern=on 2pt off 2pt,color=zzttqq] (0,0)– (2.32,4.36);
\draw [dash pattern=on 2pt off 2pt,color=zzttqq] (2.32,4.36)– (5.5,5.5);
\draw [color=zzttqq] (5.5,5.5)– (4.97,3.04);
\draw [color=zzttqq] (4.97,3.04)– (0,0);
\fill [color=uququq] (0,0) circle (1.5pt);
\draw[color=uququq] (-0.36,0.4) node {$A$};
\fill [color=qqqqff] (3,2) circle (1.5pt);
\draw[color=qqqqff] (3.16,2.26) node {$B$};
\fill [color=qqqqff] (10,2) circle (1.5pt);
\draw[color=qqqqff] (10.16,2.26) node {$C$};
\fill [color=xdxdff] (7,0) circle (1.5pt);
\draw[color=xdxdff] (7,-0.3) node {$D$};
\fill [color=qqqqff] (1,9) circle (1.5pt);
\draw[color=qqqqff] (1.16,9.26) node {$S$};
\fill [color=xdxdff] (5.05,0.97) circle (1.5pt);
\draw[color=xdxdff] (5.2,1.24) node {$F$};
\fill [color=uququq] (5.5,5.5) circle (1.5pt);
\draw[color=uququq] (5.66,5.76) node {$G$};
\fill [color=uququq] (3.68,3.68) circle (1.5pt);
\draw[color=uququq] (3.14,3.74) node {$H$};
\fill [color=uququq] (2.32,4.36) circle (1.5pt);
\draw[color=uququq] (1.82,4.6) node {$I$};
\fill [color=uququq] (4.97,3.04) circle (1.5pt);
\draw[color=uququq] (5.2,3.18) node {$J$};
\end{tikzpicture}
\end{document}
Kết quả ta có hình vẽ sau:
Đón đọc bài Thực hành \LaTeX 5 thầy viết về xử lý file PDF, ví dụ: Điền vào một mẫu đơn, thêm tính năng vẽ hình bằng Metapost (lập bảng biến thiên hàm số, chẳng hạn) v.v…

Không có nhận xét nào:

Đăng nhận xét