Apakah ada cara saya dapat mendefinisikan variabel di LaTeX?


350

Di LaTeX, bagaimana saya bisa mendefinisikan variabel string yang isinya digunakan alih-alih variabel dalam PDF yang dikompilasi?

Katakanlah saya sedang menulis dokumen teknologi pada perangkat lunak dan saya ingin mendefinisikan nama paket di pembukaan atau di suatu tempat sehingga jika namanya berubah, saya tidak harus menggantinya di banyak tempat tetapi hanya di satu tempat .


2
Untuk konten yang sangat besar, perlu disebutkan \ savebox ( en.wikibooks.org/wiki/LaTeX/Boxes#savebox ).
Immanuel Weihnachten

Jawaban:


371

tambahkan yang berikut ini untuk Anda pembukaan:

\newcommand{\newCommandName}{text to insert}

Kemudian Anda bisa menggunakannya \newCommandName{}dalam teks

Untuk info lebih lanjut \newcommand, lihat misalnya wikibooks

Contoh:

\documentclass{article}
\newcommand\x{30}
\begin{document}
\x
\end{document}

Keluaran:

30

31
@DiAlex berhati-hatilah saat menghilangkan kurung kurawal, karena akan mengganggu ruang putih setelah teks yang dimasukkan. Lihat pertanyaan ini .
jtpereyda

Saya tidak bisa menjalankan ini dengan benar dengan karakter non-ascii. Ada ide?
lindhe

164

Gunakan \defperintah:

\def \variable {Something that's better to use as a variable}

Sadarilah bahwa \defmenimpa makro yang sudah ada sebelumnya tanpa peringatan apa pun dan karena itu dapat menyebabkan berbagai kesalahan halus. Untuk mengatasinya, gunakan variabel namespace seperti my_varatau kembali ke \newcommand, \renewcommandperintah.


10
Penggunaan \defbisa menjadi masalah karena tidak memeriksa makro yang sudah ada sebelumnya. Lihat lingkaran kedua neraka LaTeX - karena itu, lebih baik digunakan\newcommand
Ryan Atallah

2
Terima kasih @RyanAtallah menambahkan catatan tentang itu. Padahal, bukankah makna dari variablearti bahwa itu mungkin berubah? :)
pla

4
@plaes Anda benar, tetapi itu tetap tidak berarti Anda ingin menggunakannya \def. Sebagai gantinya, saya pikir itu praktik terbaik untuk pertama-tama "menginisialisasi" semua variabel yang ingin Anda gunakan \newcommand(bahkan jika itu hanya dengan \@empty), dan kemudian buat perintah Anda untuk memodifikasi variabel menggunakan \renewcommand. Ini akan memberi tahu Anda jika variabel Anda sudah keluar, karena \newcommandakan menimbulkan kesalahan (atau setidaknya peringatan).
Nick2253

4
Catatan yang \defberfungsi untuk hal-hal dalam mode matematika, sementara \newCommandNametidak. (Misalnya, \def\mathExpression{\pi^2 + \sin x})
Jollywatt

35

Untuk variabel yang menggambarkan jarak, Anda akan menggunakan \newlength(dan memanipulasi nilai-nilai dengan \setlength, \addlength, \settoheight, \settolengthdan \settodepth).

Demikian pula Anda memiliki akses ke \newcounterhal-hal seperti nomor bagian dan angka yang harus bertambah di seluruh dokumen. Saya telah menggunakan yang ini di masa lalu untuk memberikan contoh kode yang diberi nomor terpisah dari angka-angka lain ...

Yang juga perlu diperhatikan adalah \makeboxAnda dapat menyimpan sedikit dokumen yang sudah disiapkan untuk digunakan kembali nanti (dan untuk digunakan dengan \settolength...).


25
Contoh penggunaan sederhana suka \newlength{\hcolw}dan \setlength{\hcolw}{0.47\textwidth}akan bermanfaat.
trybik


1

Saya pikir Anda mungkin ingin menggunakan daftar tanda untuk tujuan ini: untuk mengatur daftar tanda \newtoks\packagename untuk menetapkan nama: \packagename={New Name for the package} untuk menempatkan nama menjadi output Anda: \the\packagename.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.