我如何写入内联十六进制值?

我如何写入内联十六进制值?

如何编写内联“\0x”,而不让 LaTeX 将每个值放在新行上?

C 语言中的“\0x”表示十六进制值。我想编写一个十六进制表示值的内联字符串。

把这当作我想写的

\0x68 \0x6F \0x77 \0x20 \0x64 \0x6F \0x3F

我试过

\\0x68 \\0x6F \\0x77 \\0x20 \\0x64 \\0x6F \\0x3F

但每个十六进制值都放在换行符上,并且缺少反斜杠。

我也试过

\texttt{\0x68\0x6F\0x77\0x20\0x64\0x6F\0x3F}

但同样的事情发生了。

答案1

在此处输入图片描述

\documentclass{article}
\newcommand\0[3]{\texttt{\string\0#1#2#3}}
\begin{document}

\0x68 \0x6F \0x77 \0x20 \0x64 \0x6F \0x3F

\end{document}

答案2

如果你有很多这样的命令,那么定义自己的命令是有意义的,比如\hexa

\documentclass{article}

\ExplSyntaxOn

\NewDocumentCommand{\hexa}{sm}
 {% * means also compute the representation
  % #2 = number to represent
  \texttt
   {
    \IfBooleanTF { #1 }
     {
      \joh_hexa:e { \int_to_Hex:n { #2 } }
     }
     {
      \joh_hexa:n { #2 }
     }
   }
 }

\cs_new:Nn \joh_hexa:n
 {
  \char_generate:nn { `\\ } { 12 } 0x #1
 }
\cs_generate_variant:Nn \joh_hexa:n { e }

\ExplSyntaxOff

\begin{document}

\hexa{68} \hexa{6F} \hexa{77} \hexa{20} \hexa{64} \hexa{6F} \hexa{3F}

\hexa*{123456}

\hexa*{\value{page}}

\end{document}

您会看到\hexa*TeX 会为您转换为十六进制,您甚至可以使用 LaTeX 计数器,如图所示。

在此处输入图片描述

使用命令更好,因为如果您后来改变主意,例如决定不使用反斜杠,您只需在一个地方更改定义即可。

答案3

具有以下多个实例的解决方案\string

在此处输入图片描述

\documentclass{article}
\begin{document}
\texttt{\string\0x68\string\0x6F\string\0x77\string\0x20\string\0x64\string\0x6F\string\0x3F}
\end{document}

答案4

请尝试以下操作:

\documentclass{article}

\begin{document}

The value \texttt{\textbackslash0x68} is a hexadecimal code.

\end{document}

相关内容