我知道如何在 Lyx 中插入“算法”。但是如何插入“协议”,如下图所示?
答案1
您可以使用algorithm
和algorithmic
来生成协议。更多信息这里和这里。
为了编写《议定书》的“序言”(缔约方、输入等),我将使用一个简单的表格。
最终结果可能是这样的:
\documentclass[a4paper,11pt]{article}
\usepackage{algorithm}
\usepackage{algorithmic} %need these for the protocol
\usepackage{array} % this package for the tabular
\newcolumntype{L}{>{\centering\arraybackslash}m{3.8cm}} %this is to create a nice tabular, you can tweek this, or tweek the tabular directly
\begin {document}
blah blah blah
\begin{algorithm}[H]
\floatname{algorithm}{Protocol} %define the title to be protocol
\renewcommand{\thealgorithm}{}
\caption{Something about integers}
\label{protocol1}
\begin{tabular}{LLL} %define the party, input and so on
Party &$A$ &$B$\\
Hard &tada &woohoo\\
\hline
\end{tabular}
\begin{algorithmic}[1] %state the steps
\STATE $A$ chooses a random number $r$ of $\log_{2}N-1$ bits, encrypts it, and computes...
\STATE $B$ dectypts $\left[z\right]$...
\STATE $A$ and $B$ do something...\\
That is long\\
and takes up space\\
\STATE $B$ computes...
\end{algorithmic}
\end{algorithm}
\end{document}
结果:
要在 Lyx 中执行此操作,您只需将包含三个包(algorithm
、algorithmic
和array
)的行以及包含的行添加newcolumntype
到文档前言中(document->settings->preamble)。
然后在文本主体中添加 ERT(cntrl +l)浮点数(\begin{algorithm}...
您想要的所有内容)。
请注意,使用该选项可以将浮点数“明确地”放置在这里[H]
。您可能希望将其更改为更合适的内容,例如[htb]
。
或者,您可以在浮点插入表中插入一个算法浮点数,然后在表后使用 ERT 添加算法。
答案2
部分答案:使用包 newfloat。
\documentclass{scrartcl}
\usepackage{newfloat, blindtext}
\DeclareFloatingEnvironment[
fileext=lop,
listname={List of Protocols},
name=Protocol,
placement=p,
within=section,
%chapterlistsgaps=off,
]{protocoll}
\begin{document}
\blindtext
\begin{protocoll}
\caption{Exact integer division}
\begin{tabular}{lr}
Here & is the content\\
\end{tabular}
\end{protocoll}
\end{document}
在 Lyx 中,您可以将 LaTeX 代码添加到您的文档中,我假设您知道这一点。