Theo nguyên văn, nếu bạn thực sự muốn sử dụng một số đánh dấu trong LaTeX đã xuất, thì bạn chỉ có thể sử dụng =*shrug*=
. Tuy nhiên nếu bạn chỉ muốn nó được xuất dưới dạng *shrug*
và bạn muốn làm điều này mọi lúc, tôi sẽ khuyên bạn nên lọc . Tuy nhiên, nếu bạn chỉ cần điều này cho một số trường hợp *shrug*
, bạn nên sử dụng giải pháp thay thế được đề xuất bởi @wvxvw. Bạn có thể làm điều này một cách sạch sẽ bằng cách sử dụng macro . Một số ví dụ sau đây.
Bộ lọc
(defun my-bold (contents backend info)
(when (org-export-derived-backend-p backend 'latex)
(replace-regexp-in-string "\\`\\\\textbf{\\(.+\\)}"
"\\\\ast{}\\1\\\\ast{}" contents)))
(add-to-list 'org-export-filter-bold-functions 'my-bold)
Về cơ bản, bộ lọc ở trên tìm kiếm \textbf{..}
đánh dấu trong chuỗi được chuyển mã và thay thế nó bằng \ast{}..\ast{}
, mà không thay đổi bất cứ thứ gì được bọc bên trong {..}
. Tôi chưa kiểm tra biểu thức chính quy và chuỗi thay thế, vì vậy có thể có lỗi, nhưng bạn hiểu ý. Tương tự như vậy để bao gồm các phụ trợ khác, người ta có thể bao gồm các đoạn bổ sung như thế này:
(when (org-export-derived-backend-p backend 'html)
(replace-regexp-in-string "<b>\\(.+\\)</b>" "\a;\\1\a;" contents))
Cùng cảnh báo giữ cho biểu thức thông thường ở trên.
Macro
Nguồn Org:
#+macro: nobold @@latex:\ast{}$1\ast{}@@ @@html:a;$1a;@@
This text is *bold* this is nobold{{{not}}}
xuất khẩu sang LaTeX như:
This text is \textbf{bold} this is \ast{}not\ast{}
và sang HTML dưới dạng:
This text is <b>bold</b> this is a;nota;
Tất nhiên bạn có thể thêm nhiều phụ trợ như bạn muốn vào macro.
Chỉnh sửa: như Kaushal chỉ ra trong các nhận xét, đoạn xuất cho latex là tùy chọn trong trường hợp này. Tuy nhiên, tôi thích sử dụng chúng bất cứ khi nào có liên quan đến latex trần, vì tôi thấy khá khó khăn để theo dõi danh sách org-entities
và các quy tắc cụ thể đằng sau việc xác định latex trần trong nguồn Org.
Ghi chú:
- các ví dụ bộ lọc chưa được kiểm tra,
- Tôi không biết bất kỳ
HTML
, vì vậy có thể có một số sai lầm trong các bit tương ứng.
\ast{}shrug\ast{}
hoặc\star{}shrug\star{}
tương tự, với HTML, bạn có thể sử dụng mã hóa thực thể:a;
hoặc nếu thêm khoảng trắng trước hoặc sau dấu hoa thị là một tùy chọn, điều đó cũng sẽ hoạt động.