mPEC Forum

หัวข้อทั่วไป => การเขียนข้อความเป็นสัญลักษณ์คณิตศาสตร์และสมการคณิตศาสตร์ => Topic started by: Ittipat on October 29, 2019, 06:51:44 PM



Title: ปัญหาLatex พิมพ์ภาษาไทยคู่กับอังกฤษ
Post by: Ittipat on October 29, 2019, 06:51:44 PM
คำสั่งที่ใช้ในTeXstudio
"
\documentclass[a4paper,12pt]{article}

\usepackage{fontspec}
 
\setmainfont{CMU Serif}
\setsansfont{TeX Gyre Heros}
\setmonofont{TeX Gyre Cursor}

\newfontfamily{\thaifont}[Scale=MatchUppercase]{TH Sarabun Chula}
\newenvironment{thailang}
{\thaifont}

\usepackage[Latin,Thai]{ucharclasses}
\setTransitionTo{Thai}{\begin{thailang}}
\setTransitionFrom{Thai}{\end{thailang}}

\usepackage{setspace}
\onehalfspacing

\usepackage{amsmath,amsthm,amssymb}

\begin{document}
   
   \section*{ชั่งน้ำหนักมวล}
   มองมวล
   จะได้ว่า$W=mg$

\end{document}
"
ผลลัพธ์ที่ได้กลายเป็นว่ามันจะขึ้นบรรทัดใหม่ทุกครั้งที่พิมพ์ภาษาอังกฤษหรือสัญลักษณ์คณิตศาสตร์
ผู้รู้ช่วยแก้ปัญหาหน่อยครับ ผมลองแก้มาหลายวันแล้วยังไม่ทราบวิธี :buck2: ขอบคุณครับ


Title: Re: ปัญหาLatex พิมพ์ภาษาไทยคู่กับอังกฤษ
Post by: ปิยพงษ์ - Head Admin on October 29, 2019, 08:42:35 PM
ไม่รํู้ว่าไปลอกตัวอย่างมาจากไหน

เอา \newenvironment{thailang} ออก

เปลี่ยน

\setTransitionTo{Thai}{\begin{thailang}}
\setTransitionFrom{Thai}{\end{thailang}}

ดู code ที่แนบมา

Code:
\documentclass[a4paper,12pt]{article}

\usepackage{fontspec}
 
\setmainfont{CMU Serif}
\setsansfont{TeX Gyre Heros}
\setmonofont{TeX Gyre Cursor}

\newfontfamily{\thaifont}[Scale=MatchUppercase]{TH Sarabun Chula}
%\newenvironment{thailang}
{\thaifont}

\usepackage[Latin,Thai]{ucharclasses}
\setTransitionTo{Thai}{\thaifont}
\setTransitionFrom{Thai}{\thaifont}

\usepackage{setspace}
\onehalfspacing

\usepackage{amsmath,amsthm,amssymb}

\begin{document}
  
   \section*{ชั่งน้ำหนักมวล}
   มองมวล  
  
   จะได้ว่า $W=mg$  ทดลองดู English ไทย  $\vec{W}=m\vec{g}$ ทดลองดู English ไทย

\end{document}


Title: Re: ปัญหาLatex พิมพ์ภาษาไทยคู่กับอังกฤษ
Post by: Ittipat on October 29, 2019, 08:52:48 PM
ไม่รํู้ว่าไปลอกตัวอย่างมาจากไหน

ผมไปเอามาจากหลายๆที่มารวมๆกันครับ ก็เลยเกิดปัญหาครับ

ขอบคุณสำหรับคำแนะนำครับ >:A


Title: Re: ปัญหาLatex พิมพ์ภาษาไทยคู่กับอังกฤษ
Post by: ปิยพงษ์ - Head Admin on October 29, 2019, 09:19:10 PM
^ถ้าอยากให้ใช้ฟอนต์ภาษาอังกฤษตอนที่พิมพ์ภาษาอังกฤษ ก็ให้เปลี่ยนที่ \setTransitionFrom{Thai}{\englishfont} โดยไปนิยาม englishfont ไว้ว่าเราจะใช้ฟอนต์ไหน

ดูตัวอย่าง

Code:
\documentclass[a4paper,12pt]{article}

\usepackage{fontspec}
 
\setmainfont{CMU Serif}
\setsansfont{TeX Gyre Heros}
\setmonofont{TeX Gyre Cursor}

\newfontfamily{\englishfont}{CMU Serif}
\newfontfamily{\thaifont}[Scale=MatchUppercase]{TH Sarabun Chula}
%\newenvironment{thailang}{\thaifont}

\usepackage[Latin,Thai]{ucharclasses}
\setTransitionTo{Thai}{\thaifont}
\setTransitionFrom{Thai}{\englishfont}

\usepackage{setspace}
\onehalfspacing

\usepackage{amsmath,amsthm,amssymb}

\begin{document}
    \section*{ชั่งน้ำหนักมวล}
   มองมวล  
  
   จะได้ว่า $W=mg$  ทดลองดู English ไทย  $\vec{W}=m\vec{g}$ ทดลองดู English ไทย

\end{document}