มีวิธีง่ายๆในการเข้าสู่โหมด texttt เช่น $ สำหรับโหมดคณิตศาสตร์หรือไม่?
เมื่อฉันต้องการที่จะอ้างถึงตัวแปรทางคณิตศาสตร์กล่าวว่าดัชนีบางอย่างi
ผมก็ล้อมรอบมันกับดอลลาร์ (เช่น$i$
) \begin{math}i\end{math}
เมื่อเทียบกับการเขียน
มีตัวเลือกที่คล้ายกันสำหรับtexttt
โหมดเช่น§i§
เพื่อแทนที่\texttt{i}
หรือไม่?
คำตอบ
คุณสามารถใช้§
เป็นตัวคั่นโดยไม่มีผลกับอักขระอื่นโดยใช้ไบต์แรกเดียวกัน
\documentclass{article}
\usepackage{newunicodechar}
\newunicodechar{§}{\makeabbreviationtt}
\def\makeabbreviationtt#1§{\texttt{#1}}
\begin{document}
This is §monospaced§. This doesn't affect ©, ¶
and other similar UTF-8 characters.
You can also do §¶§
\end{document}

ไม่ใช่สำหรับ\texttt
แต่สำหรับ\verb
การแจกจ่ายพื้นฐานรวมถึงshortvrb
แพ็คเกจที่อนุญาตให้คุณกำหนดชวเลข
\documentclass{article}
\usepackage{shortvrb}
\MakeShortVerb|
\begin{document}
aaaa |z| aaa
\end{document}
\documentclass{article}
\def§#1§{\texttt{#1}}
\begin{document}
roman §tt text§ back to roman
\end{document}

อย่างไรก็ตามตามที่ David ชี้ให้เห็นในความคิดเห็นเนื่องจาก§
ไม่ใช่อักขระแบบไบต์เดียว แต่เป็นอักขระ UTF-8 ที่ขยาย (หลายไบต์) วิธีนี้จะลบอักขระ UTF-8 ใด ๆ ที่ขึ้นต้นด้วยคำนำหน้าเดียวกัน ส่งผลให้เกิดข้อผิดพลาดหากมีการใช้อักขระเหล่านั้น (เช่น©
)
ดังนั้นหากคุณต้องการโซลูชันประเภทนี้จะเป็นการดีกว่าถ้าเลือกตัวคั่นเป็นอักขระ ASCII แบบไบต์เดียวและทำให้มันทำงานได้:
\documentclass{article}
\catcode`|=\active
\def|#1|{\texttt{#1}}
\begin{document}
roman |tt text| back to roman
\end{document}
ข้อเสียตรงนี้คือคุณสูญเสียการใช้|
เป็นอักขระป้อนข้อมูลปกติ ดังนั้นคุณสามารถจินตนาการและสร้างการหลบหนีในคำจำกัดความเพื่อที่||
จะสะท้อนเสียงเดี่ยว|
ที่จะเรียงพิมพ์:
\documentclass{article}
\usepackage[T1]{fontenc}
\let\svvert|
\catcode`|=\active
\def|#1|{\ifx\relax#1\relax\expandafter\svvert\else\texttt{#1}\fi}
\begin{document}
roman |tt text| back to roman || or $y =||x||$ and |then back to texttt|.
\end{document}
