Trang nhà
Diễn đàn
Diễn đàn
hành động:
thực hiện cho box:
Như thế này dịch được
Sao cái này lại không
\documentclass{report}
\usepackage[utf8]{vietnam}
\newcommand{\thoigian}{\def \@tg}
\thoigian{2h}%
\begin{document}
Bay gio la: \@tg
\end{document}
Sao cái này lại không
\documentclass{report}
\usepackage[utf8]{vietnam}
\newcommand{\thoigian}{\def \@tg}
\newcommand{\ngay}{\def \@ng}
\thoigian{2h}
\ngay{22}
\begin{document}
Thoi gian: \@tg
Ngay: \@ng
\end{document}
@ là ký tự đặc biệt, có mã phạm trù (catcode) khác với các ký tự khác (a,b,c). Vì thế, khi định nghĩa \@tg thì thực tế bạn định nghĩa lệnh \@ với hai hậu tố tg. Nếu tiếp tục định nghĩa \@ng thì định nghĩa trước bị bỏ qua, và bây giờ \@ được định nghĩa với hai hậu tố ng. Vì lẽ đó, việc gọi đến \@tg sẽ báo lỗi.
Mọi chuyện sẽ bình thường nếu trong ví dụ của bạn, thay @ bởi ký tự khác, ví dụ \Xtg, \Xng, \XYtg, \XYng,...
Muốn lấy thời gian hoặc ngày tháng hiện tại, thì đã có: \the\date, \the\month, \the\year, \the\time.
Câu hỏi quan trọng là: Mục đích của bạn là gì?
Mọi chuyện sẽ bình thường nếu trong ví dụ của bạn, thay @ bởi ký tự khác, ví dụ \Xtg, \Xng, \XYtg, \XYng,...
Muốn lấy thời gian hoặc ngày tháng hiện tại, thì đã có: \the\date, \the\month, \the\year, \the\time.
Câu hỏi quan trọng là: Mục đích của bạn là gì?