Swit
Swit
LaTeX nubility!

注册于 3年前

回答
81
文章
0
关注者
4

使用 listings 包,开启 breaklines = true,然后用 \lstinline 排版行内代码。

\documentclass{ctexbook}
\usepackage{listings}
\lstset{breaklines=true,basicstyle=\ttfamily}
\begin{document}

这是一段文字,这是一段文字,这是一段文字。
\lstinline|print("Hello world hello world")|

\end{document}

\documentclass{article}
\DeclareFontFamily{U}{ntxmia}{\skewchar \font =127}
\DeclareFontShape{U}{ntxmia}{m}{it}{<-> ntxmia}{}    
\DeclareSymbolFont{lettersA}{U}{ntxmia}{m}{it}
\SetSymbolFont{lettersA}{bold}{U}{ntxmia}{b}{it}
\DeclareMathSymbol{\piup}{\mathord}{lettersA}{25}
\begin{document}

$\piup$

\end{document}

使用 ctex 宏包或者 xeCJK 宏包,不要直接用 fontspec 调用中文字体。

我没看明白连接线的规律,所以没画

\documentclass{article}
\usepackage{tikz}
\begin{document}
\newcounter{mycount}
\setcounter{mycount}{1}
\begin{tikzpicture}
  \foreach \s in {2,...,8}
    {
      \pgfmathsetmacro{\z}{\s-1}
      \foreach \x in {1,...,\z}
        {

          \draw node[draw,circle,inner sep=2pt] at (\x, \s-\x) {\themycount\global\stepcounter{mycount}};
        }
    }
  \draw[-latex] (-1,0) -- (9,0) node[below] {$x$};
  \draw[-latex] (0,-1) -- (0,9) node[left] {$y$};
  \foreach \i in {1,...,7}
    {
      \fill (\i,0) circle[radius=1pt] node[below] {\i};
      \fill (0,\i) circle[radius=1pt] node[left]  {\i};
    }
  \filldraw (0,0) circle[radius=2pt] node[below left] {$O$};
\end{tikzpicture}

\end{document}

image.png

\documentclass{article}
\usepackage{enumitem}
\begin{document}

\begin{enumerate}[label={[\arabic*]}]
  \item hello
  \item world
\end{enumerate}

\end{document}

\documentclass{article}
\usepackage{ctex}
\usepackage{tikz}
\ExplSyntaxOn
\int_new:N \l_exercise_number_int
\NewDocumentCommand{\datika}{ m }{
  \int_set:Nn \l_exercise_number_int { #1 }
  \begin{tikzpicture}[overlay,remember~picture]
    \node[
        fill=gray!10,
        rounded~corners,
        shift={(1,0)},
        align=left,
        font={\baselineskip=2.6em}
    ] at (current~page.west){
        {\heiti 答题卡} \\
        \int_step_inline:nn
          { \l_exercise_number_int }
          { ##1.\underline{\hspace{1cm}} \\ }
    };
  \end{tikzpicture}
}
\ExplSyntaxOff
\begin{document}

hello\datika{15}

\end{document}

或者

\documentclass{article}
\usepackage{ctex}
\usepackage{tikz}
\ExplSyntaxOn
\int_new:N \l_exercise_number_int
\int_set:Nn \g_tmpa_int { 1 }
\NewDocumentCommand{\datika}{ m }{
  \int_set:Nn \l_exercise_number_int { #1 }
  \begin{tikzpicture}[overlay,remember~picture]
    \node[
        fill=gray!10,
        rounded~corners,
        shift={(1,0)},
        align=left,
        font={\baselineskip=2.6em}
    ] at (current~page.west){
        {\heiti 答题卡} \\
        \int_step_inline:nn
          { \l_exercise_number_int - 1 }
          { \int_use:N \g_tmpa_int.\underline{\hspace{1cm}} \int_gincr:N \g_tmpa_int \\ }
        \int_use:N \l_exercise_number_int. \underline{\hspace{1cm}}
    };
  \end{tikzpicture}
}
\ExplSyntaxOff
\begin{document}

hello\datika{15}

\end{document}

PDF 的字体信息可以通过命令行工具(如 pdffonts)查看的

看手册 mtpro2.pdf,其提供了一个命令 \SQRT

\documentclass{article}
\usepackage{mtpro2}
\begin{document}
\[\SQRT[3]{\sum_{i=1}^n (x_i-y_i)^3}\quad
  \sqrt[3]{\sum_{i=1}^n (x_i-y_i)^3}\]
\end{document}

image.png

\documentclass{article}
\usepackage{mtpro2}
\DeclareSymbolFont{largesymbols-cmex}{OMX}{cmex}{m}{n}
\DeclareMathSymbol{\intop}{\mathop}{largesymbols-cmex}{"52}
    \DeclareRobustCommand\int{\intop\nolimits}
\DeclareFontEncoding{LMX}{}{}
\DeclareFontSubstitution{LMX}{ntxexx}{m}{n}
\DeclareSymbolFont{largesymbols-newtxmath}{LMX}{ntxexx}{m}{n}
\DeclareMathDelimiter{\langle}{\mathopen}{symbols}{104}{largesymbols-newtxmath}{10}
\DeclareMathDelimiter{\rangle}{\mathclose}{symbols}{105}{largesymbols-newtxmath}{11}
\begin{document}

\[ \int \left\langle \frac{u}{|u|},\frac{v}{|v|}\right\rangle \alpha\xi\zeta\]

\end{document}

image.png

这个就是 TeX 中的一个特殊规则(见 TeXbook 204 页),在早些年代,计算机内存较小,这种定义方式可以节省一些字节量。

现在定义宏不推荐这种写法,能看明白就行。

pdftex 跑下面的代码:

\tracingmacros=1
\def\foo#1#2#{*#1,#2*}

\foo 1 2{}

\foo 1 {2}

\bye

在 log 文件中会看到:

\foo #1#2{->*#1,#2*{
#1<-1
#2<- 2

\foo #1#2{->*#1,#2*{
#1<-1
#2<- %%%注意这里有一个空格,自己测试一下

对于 \foo 1 2{}\foo 接收的第一个参数是 1,第二个参数为第一个参数与左花括号之间的所有 token,也就是空格符和 2;而对于 \foo 1 {2},第一个参数还是 1,而第二个参数只剩下一个空格符;再改一下,如果删掉 1 后面的空格符的话(即 \foo 1{2}),第二个参数就是空的。

我们可以通过这个特性定义带可选参数的宏,看看从 xcolor 里面节选的一段代码:

\documentclass{article}
\usepackage{xcolor}
\makeatletter
\def\testclr#1#{\@testclr{#1}}
\def\@testclr#1#2{{\fboxsep\z@\fbox{\colorbox#1{#2}{\phantom{XX}}}}}
\makeatother
\begin{document}

\testclr{red}
\testclr[rgb]{1,0,1}

\end{document}

\testclr 只有一个参数,且这个参数位于宏本身与左花括号之间,所以

  • 对于 \testclr{red}#1 为空,于是传给 \@testclr 的第一个参数为空,第二个参数为 red
  • 对于 \testclr[rgb]{1,0,0},第一个参数为 [rgb],第二个参数为 1,0,0,于是传给 \@testclr 的两个参数也一样

image.png

看这个,和你的需求一模一样

https://tex.stackexchange.com/questions/23432/how-to-create-my-own-math-operator-with-limits


看来光丢个链接还不行?

\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx}

\makeatletter
\DeclareRobustCommand\bigop[1]{%
  \mathop{\vphantom{\sum}\mathpalette\bigop@{#1}}\slimits@
}
\newcommand{\bigop@}[2]{%
  \vcenter{%
    \sbox\z@{$#1\sum$}%
    \hbox{\resizebox{\ifx#1\displaystyle.9\fi\dimexpr\ht\z@+\dp\z@}{!}{$\m@th#2$}}%
  }%
}
\makeatother

\newcommand{\bigK}{\DOTSB\bigop{\mathrm{K}}}

\begin{document}
\[
\bigK_{N=1}^n \frac{a_N}{b_N}
\quad
\textstyle
\bigK_{N=1}^n \frac{a_N}{b_N}
\quad
\scriptstyle
\bigK_{N=1}^n \frac{a_N}{b_N}
\quad
\scriptscriptstyle
\bigK_{N=1}^n \frac{a_N}{b_N}
\]
\end{document}

image.png

如果这是 LaTeX-Workshop 拓展的问题,请到其 Github issues 处提交问题报告。

\documentclass{article}
\usepackage{tikz}
\begin{document}

Hello \tikz[baseline=(char.base)] \node[circle,draw,inner sep=0pt] (char) {\#}; World

\end{document}

发布
问题