กำหนดดาว“ *” - ให้กลายเป็นจุด

Sep 23 2020

เมื่อเขียนในโหมดคณิตศาสตร์สามารถกำหนด a * ให้กลายเป็น \ cdot ในเอกสารหลักได้หรือไม่?

ทำให้ง่ายขึ้นเมื่อเขียนสมการเพื่อสร้างดาว

คำตอบ

31 DavidCarlisle Sep 23 2020 at 11:02

\documentclass{article}

% \DeclareMathSymbol{\cdot}{\mathbin}{symbols}{"01} % from fontmath.ltx
\DeclareMathSymbol{*}{\mathbin}{symbols}{"01}
\begin{document}

$ x * y $

\end{document}
18 DonaldArseneau Sep 23 2020 at 11:01

ทั้ง

\mathcode`\*=\number\cdot

หรือ

\mathcode`\*=\number\circ

หรือ

\mathcode`\*=\number\bullet

( \numberไม่จำเป็นจริงๆ แต่อาจช่วยได้สำหรับเวอร์ชันที่ผิดปกติ\circหรือ\cdotหรือ\bullet)

9 StevenB.Segletes Sep 23 2020 at 11:30

ดังที่ฉันได้ชี้ให้เห็นในความคิดเห็นการกำหนดใหม่ในการใช้งาน* ในทางที่ผิดจะป้องกันไม่ให้คุณใช้มาโครโหมดคณิตศาสตร์รุ่นดาว (ดูรายการบางส่วนด้านล่าง *) ตัวอย่างเช่นการเปิด*ใช้งานอาจเป็นวิธีที่ผิด อย่างไรก็ตาม David C และ Don ต่างทราบว่าแนวทางของพวกเขาไม่ประสบปัญหานี้และฉันก็ประมาทที่ไม่ได้สังเกตถึงความแตกต่าง

แม้ว่าการใช้มาโครดาวในโหมดคณิตศาสตร์อาจหายาก แต่ก็มักเกิดขึ้นมากพอที่จะรับประกันการหลีกเลี่ยงวิธีการที่จะใช้แอคที*ฟ แม้ว่าคุณจะใช้แนวทางของ David แต่คุณจะสูญเสียการใช้เครื่องหมายดอกจันเรียงพิมพ์ในโหมดคณิตศาสตร์เว้นแต่คุณจะบันทึกไว้ล่วงหน้าในมาโครที่ตั้งชื่อ

ทางเลือกที่จะไม่ยุ่งกับ*ในทางใดทางหนึ่งจะ \*redefine นี่คือมาโครเท็กซ์ธรรมดาที่เรียกว่า "เครื่องหมายการคูณตามดุลยพินิจ" ฉันไม่เคยใช้มันด้วยตัวเอง แต่แนวคิดก็คือคุณสามารถวางระหว่างคำศัพท์คณิตศาสตร์คูณได้ โดยปกติจะไม่ทำอะไรเลย แต่ถ้าการขีดเส้นใต้ต้องการให้เกิดขึ้นระหว่างสองคำสัญลักษณ์ (เทียบเท่า\times) จะถูกแทรกที่ปลายบรรทัด (ในขนาดข้อความ) มันทำหน้าที่เหมือนยัติภังค์คณิตศาสตร์ แต่มีแทน\times -ถ้าคุณชอบก็ไม่เคยใช้ดังกล่าวสร้างแล้วผมคิดว่ามันจะปลอดภัยที่จะกำหนดมากกว่า\**

\documentclass{article}
\renewcommand\*{\cdot}
\begin{document}
$ x \* y $
\end{document}

* ตัวอย่างของแมโครดาวรวมถึงสิ่งที่ชอบ\tag*, \ref*, \\*, \matrix*(และทุกสายพันธุ์ของมัน) \operatorname*, \alignat*เพียงแค่การเริ่มต้น

4 SergeiGolovan Sep 23 2020 at 11:31

เพื่อความสมบูรณ์เวอร์ชันสำหรับunicode-math:

\documentclass{article}
\usepackage{unicode-math}
\AtBeginDocument{\Umathcode`\* = 2 0 "22C5}
\begin{document}
$x*y$
\end{document}